小编Cat*_*lin的帖子

在 C++ 中获得可靠的单调时间(多平台)

我需要一个可用于计算间隔的单调时钟。要求:

  • 必须是单调的,不能受设备时间的影响。
  • 在应用程序会话期间不得重置。(会话中所有返回值的纪元相同)
  • 必须代表现实生活中的秒数(不是 cpu 秒),不得受到当时运行的线程/进程数量的影响。
  • 秒分辨率就足够了。

在我的研究中,我找到了候选人:

  • std::clock()(ctime)- 似乎使用 cpu 秒
  • boost::chrono::steady_clock()- 它使用 cpu 秒吗?申请期间可以更改纪元吗session(launch-end)
  • 平台特定方法( clock_gettime, mach_absolute_time)。

您是否遇到过这样的问题,您选择了什么解决方案?多平台可靠吗steady_clock()

c++ time boost

5
推荐指数
1
解决办法
3655
查看次数

使用Linq.Expressions.Expression排序

我写了这个代码IQueryable<T>按列排序sortColumn.我想扩展它,以便列的值BirthDate等于的条目DateTime.Today将排在第一位,但我无法找到或想到如何完成这项工作.

public static IQueryable<T> OrderByField<T>(this IQueryable<T> q, string sortColumn, bool asc)
{
    var param = Expression.Parameter(typeof(T), "p");

    var prop = Expression.Property(param, sortColumn);

    var exp = Expression.Lambda(prop, param);

    string method = asc ? "OrderBy" : "OrderByDescending";

    Type[] types = new[] { q.ElementType, exp.Body.Type };

    var mce = Expression.Call(typeof(Queryable), method, types, q.Expression, exp);

    return q.Provider.CreateQuery<T>(mce);
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq sorting expression-trees

2
推荐指数
1
解决办法
5492
查看次数

标签 统计

.net ×1

boost ×1

c# ×1

c++ ×1

expression-trees ×1

linq ×1

sorting ×1

time ×1