我正在尝试创建一个结合使用秒表类的应用程序.
Stopwatch sw = new Stopwatch();
sw.Start();
while (play)
{
long timer = sw.ElapsedMilliseconds;
Debug.WriteLine(timer);
}
Run Code Online (Sandbox Code Playgroud)
当我测试这个循环并检查经过的时间时,我发现程序丢失了几毫秒.
调试器输出中的一些时钟:
31
32
33
34
35
36
37
38
40 <------ 39错过
41
42
43
关于如何解决这个问题的任何建议?
缺少毫秒?您是否希望每秒钟看到一个条目?例如每秒1000?如果是这样,那将永远不会发生.没有精确到1毫秒的时序API.
除了其他操作系统进程(如任务切换)之外,您在循环中进行分配以及输出流输出这一事实意味着无法实现毫秒精度.您需要一台专用的实时机器来提供您正在寻找的输出类型