到目前为止,我一直使用DateTime.Now
时间戳记,但是我注意到,如果您DateTime.Now
循环打印,您会发现它以大约5%的离散跳跃递增。15毫秒 但是对于我的应用程序中的某些情况,我需要获得最准确的时间戳,最好是滴答(= 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毫秒。
慕姐8265434