【发布时间】:2026-02-17 21:10:02
【问题描述】:
我正在尝试创建一个包含秒表类使用的应用程序。
Stopwatch sw = new Stopwatch();
sw.Start();
while (play)
{
long timer = sw.ElapsedMilliseconds;
Debug.WriteLine(timer);
}
当我测试这个循环并检查经过的时间时,我发现程序丢失了几毫秒。
来自调试器输出的一些时钟:
31
32
33
34
35
36
37
38
40
41
42
43
关于如何解决这个问题有什么建议吗?
【问题讨论】:
-
你如何断定它短了几毫秒?
-
我认为您可能需要提供更多关于“丢失”毫秒意味着什么的详细信息——也许是一些输出。
-
当我在调试器中检查计时器输出的数字不是连续的例子 1,2,3 然后它跳到 5.
-
哦,来吧?有时,您的循环需要超过一毫秒的时间 - (对于一个简单的循环来说,这似乎太长了)您不应该期望任何操作都需要多长时间的调用之间的一致性。其他事情正在运行。如果您需要优化您的应用程序,请获取分析器,如果您不需要,请不要担心它。 CPU 不会因为运行不必要的代码而感到疲倦。
-
这个问题涉及很多层面:D