SetThreadPriority SetPriorityClass和SetProcessAffinityMask

时间:2017-03-31 09:37:33

标签: c visual-studio windows-7-x64 multicore thread-priority

我有一个小问题,我不完全理解。 所以基本上我有一个等待一个事件的线程和一个来自WinMM的timeSetEvent,它每隔1ms就会激活一次事件。

我在我的线程中放了一些查询性能计数器,找出每个线程启动之间的时间距离。该线程目前只是等待事件并检查自己的速率而不做任何其他事情。

我确认他每隔1毫秒正确安排WinMM,但是,一旦发出事件信号,有时我的线程被抢占并且比预期运行晚了大约6毫秒。在这一点上,我开始玩优先级和亲和力。所以我把我的优先级提升到了实时,我的线程时间也很重要。当在核心0上时,我的线程仍然会被抢占(每15秒约1-2次)。相反,如果我将亲和力设置为核心2,它永远不会被抢占(从未像现在这样,我运行测试软件几个小时,从未得到过预设一次)。是否有一些驱动程序/系统线程的运行优先级高于实时/时间关键,只能绑定到核心0?

我在Intel i7-3470上运行Windows 7专业版。

0 个答案:

没有答案