【发布时间】:2014-10-15 08:22:25
【问题描述】:
我是在一般意义上问这个问题,并没有考虑特定的语言。
我希望能够以高精度每 100 毫秒运行一个线程。似乎我能够使用普通线程(在快速测试应用程序中)获得的最高精度约为 5ms 左右。线程执行其任务大约需要 10 毫秒。
基本上,有什么方法可以让 Windows 以一定的延迟安排我的线程? (尽其所能,我知道它不是一个实时操作系统)
【问题讨论】:
-
是您正在执行的任务类型,它绝对需要 100 毫秒的时间,还是只需要长期平均该时间 - 即它是那种系统,您可以在其中测量和调整时间,以便总体平均结果很好,但个别时间可能有点偏?
-
也许waitable timer 值得研究....让线程运行并通过等待计时器对象来管理其频率。
-
线程通常有资格以时钟中断速率运行,默认为 15.625 毫秒。如果你得到 5 毫秒,听起来你机器上的某些程序已经搞砸了,这并不少见。你可以通过调用 timeBeginPeriod() 来修改它。
标签: windows multithreading winapi scheduled-tasks