【发布时间】:2010-11-03 17:56:07
【问题描述】:
秒表可以返回负值是正常行为吗?下面的代码示例可以用来重现它。
while (true)
{
Stopwatch sw = new Stopwatch();
sw.Start();
sw.Stop();
if (sw.ElapsedMilliseconds < 0)
Debugger.Break();
}
我可以重现负数的唯一地方是我的虚拟机(由 Hyper-V 在 8 核机器上托管)
【问题讨论】:
-
负数时ElapsedMilliseconds的值是多少?
-
卸载你的磁通电容器。
-
它每次都在变化。出现负数可能需要多次循环。
-
我要求更多的幅度。它通常在-10ms左右吗?还是通常是-4000000000ms?
-
Stopwatch 类在 VM 环境下也会随机返回极高的值。