【问题标题】:Scheduling Windows threads to run with high accuracy timing?调度 Windows 线程以高精度计时运行?
【发布时间】:2014-10-15 08:22:25
【问题描述】:

我是在一般意义上问这个问题,并没有考虑特定的语言。

我希望能够以高精度每 100 毫秒运行一个线程。似乎我能够使用普通线程(在快速测试应用程序中)获得的最高精度约为 5ms 左右。线程执行其任务大约需要 10 毫秒。

基本上,有什么方法可以让 Windows 以一定的延迟安排我的线程? (尽其所能,我知道它不是一个实时操作系统)

【问题讨论】:

  • 是您正在执行的任务类型,它绝对需要 100 毫秒的时间,还是只需要长期平均该时间 - 即它是那种系统,您可以在其中测量和调整时间,以便总体平均结果很好,但个别时间可能有点偏?
  • 也许waitable timer 值得研究....让线程运行并通过等待计时器对象来管理其频率。
  • 线程通常有资格以时钟中断速率运行,默认为 15.625 毫秒。如果你得到 5 毫秒,听起来你机器上的某些程序已经搞砸了,这并不少见。你可以通过调用 timeBeginPeriod() 来修改它。

标签: windows multithreading winapi scheduled-tasks


【解决方案1】:

在 Windows 上,您能做的最好的可能就是使用multimedia timer。这些是平台的高分辨率计时器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多