【发布时间】:2012-12-16 23:33:29
【问题描述】:
有没有比秒表更准确的“睡眠”方法?或者,有没有办法让秒表类更准确?它不必在 .NET 中,它可以在 c++ 中,但无论使用哪种语言,都必须具有 1 毫秒的准确度;我不需要更多。假设我希望我的程序“休眠”300 毫秒,我希望它至少在大多数时间休眠 300 毫秒。
目前我使用:
Dim StopWatch As New StopWatch
StopWatch.Start
Do
Loop Until StopWatch.ELapsed.Milliseconds >= 300
StopWatch.Stop
我运行 5 次的结果是:306、305、315、327、304。
如果我再运行它,它就会保持这种状态。
我将线程和进程优先级设置为“实时”/“高”。
【问题讨论】:
-
@ChristianSauer:秒表的所有“替代品”(我知道)都在做同样的事情,秒表类的作用是:如果可用,使用 HPET。其中大多数是在 Framework 1.1 中“发明”的,因为 Stopwatch 类仅在 FW 2.0 中出现。秒表类是准确的 - 如果 HPET 可用。如果没有 HPET,那么我不知道有任何替代方案可以产生类似的准确性。