相关疑难解决方法(0)

如何在.NET/C#中获取tick精度的时间戳?

到目前为止,我用来DateTime.Now获取时间戳,但是我注意到如果你DateTime.Now在一个循环中打印,你会看到它以大约的离散跳跃增量.15毫秒 但对于我的应用程序中的某些情况,我需要获得最准确的时间戳,最好是精确到tick(= 100 ns).有任何想法吗?

更新:

显然,StopWatch/ QueryPerformanceCounter是要走的路,但它只能用于测量时间,因此我考虑DateTime.Now在应用程序启动时调用,然后StopWatch运行,然后只将经过的时间从StopWatch返回的初始值中添加DateTime.Now.至少那应该给我准确的相对时间戳,对吧?你怎么看待(黑客)?

注意:

StopWatch.ElapsedTicks不同于StopWatch.Elapsed.Ticks!我使用前者假设1 tick = 100 ns,但在这种情况下1 tick = 1/StopWatch.Frequency.所以要获得相当于DateTime使用的刻度StopWatch.Elapsed.Ticks.我刚刚学到了这个困难的方法.

笔记2:

使用StopWatch方法,我注意到它与实时不同步.大约10个小时后,它提前5秒.所以我想我们必须每隔X左右重新同步一次,其中X可能是1小时30分钟,15分钟等等.我不确定重新同步的最佳时间跨度是什么,因为每次重新同步都会改变偏移量,这可能是最多20毫秒.

.net c# timestamp

61
推荐指数
5
解决办法
5万
查看次数

标签 统计

.net ×1

c# ×1

timestamp ×1