2

REALTIME_PRIORITY_CLASS(with THREAD_PRIORITY_TIME_CRITICAL)实际上是做什么的?

可以:

  • 防止中断触发
  • 防止发生上下文切换

在处理器上(除非线程休眠)?

如果它确实阻止了上述情况的发生:

  • 为什么当我在带有这个标志的处理器上运行程序时,我仍然得到不一致的计时结果?如果没有任何中断,程序不应该每次都花费相同的时间吗?

如果它不能阻止上述情况的发生:

  • 如果我使用不正确,为什么我的系统(鼠标、键盘等)会锁定?驱动程序不应该得到一些处理器时间吗?
4

1 回答 1

0

它基本上告诉系统调度程序只给你的线程很多时间,直到它放弃(通过SleepSwitchToThread)或死亡。至于时间不一样,操作系统仍然在每次运行之间运行,这可以改变内存和缓存等。其次,大多数时间是不准确的,所以它会波动(尤其是基于系统量子的时间,比如GetTickCount)。操作系统也有很多事情要做,比如省电/动态频率调整,所以你最好检查一下是否使用 RDTSC,尽管即使这样你可能会注意到其他东西正在运行(特别是如果你可以运行多个物理线程) .

于 2011-07-23T12:06:43.810 回答