我正在制作一个应用程序,它需要一些非常紧凑的时间,而秒表类就是完美的解决方案。然而,我有时注意到,当在一台小型平板电脑上运行时,秒表的值会有很大偏差。我添加了一些调试打印输出,每隔200毫秒左右监控秒表的值:
0:00:197
0:00:502
0:00:702
..。
0:03:356
0:12:93
0:13:21
0:13:421
..。
它怎么可能从~3秒跳到~13秒呢?我现在看到底层函数QueryPerformanceCounter()有错误(),但我感觉这里发生了其他事情。
任何洞察力都是值得欣赏的。
更新:
下面是关于我的代码的更多细节:它非常简单。它是一个WPF应用程序,它在启动时创建一个新的Stopwatch
对象,然后通过Start()
启动它。然后创建一个DispatcherTimer
,如下所示:
displayTimer = new DispatcherTimer();
displayTimer.Tick += display_Tick;
displayTimer.Interval = DISPLAY_INTERVAL_TIMESPAN;
其中时间跨度为200毫秒。我的调试代码只是在dispatchTimer
每次滴答作响时打印出Stopwatch
对象的值。
Update2:
微软的一篇有趣的支持文章是。
https://stackoverflow.com/questions/3400254
复制相似问题