DateTime.Ticks
是否可以在 C++ ATL 或 MFC 中以 .NET 对象的相同格式(以 100ns 为单位)获得刻度数?
问问题
925 次
1 回答
2
DateTime.Ticks
对定时器分辨率没有任何影响,因此不保证定时器精度为 100ns。在 C++ 中,您可以使用以下方法获得类似的价值:
ULONGLONG nTicks = GetTickCount() * 10000i64;
如果您需要更准确的计时器,请寻找QueryPerformanceCounter
基于实现。看:
- 如何使用查询性能计数器?
- 最快的时序解析系统
- 有人可以破译 timeGetTime() 或 QueryPerformanceCounter/QueryPerformanceFrequency 是否具有较低的开销或/和准确性?
UPD。至于与 .NETTicks
属性的对齐方式,请参见上面 Hans 的评论 - 从 API 的结果中转换/计算的值也采用相同的 100 ns 单位,并由固定常数GetFileTime
抵消属性。Ticks
于 2012-05-01T12:16:03.030 回答