您可以使用 SetThreadAffinityMask 限制线程在可用处理器/核心的某个子集上运行。
SetThreadAffinityMask
如果你使用 SetThreadPriority 和 SetProcessPriorityClass 要将线程设置为实时优先级,只有以实时优先级运行的其他线程才能中断它,有效地强制其他线程在其他内核上运行(除非你将两个或多个线程提升到实时优先级。
SetThreadPriority
SetProcessPriorityClass
作为备选, Windows Embedded Compact 是一个基于实时优先级的操作系统,可以实现软实时保证(远远优于Windows Vista / 7)。它的成本很高,但与其他商业RTOS相当。
无法保证您的流程将实时处理。 Windows不会这样做。既然你提到了安全问题,我会提到,如果你提起诉讼,你就会陷入困境。专家证人将证明该设计本质上是不安全的。
用户控制和显示可以在Windows中完成,但实时操作属于专用硬件,如PLC。