2

大規模な CNC マシンを制御するインターフェイスを C++ で作成し、Windows 上で実行します。安全上の理由から、このプロセスを独自のコアで実行して、プロセスをリアルタイムで実行できるようにしたいと考えています。Windows とコアを共有している場合、すべての Windows プロセスが自分のプロセスより先に処理されます。基本的に、自分のプロセスが常に処理キューの先頭にあることを確認するにはどうすればよいですか? または、自分のプロセスを実行するコアを指定し、他のコアを Windows の処理に任せるにはどうすればよいでしょうか? また、私のプログラミングがリアルタイムで実行されていることを確認する方法はありますか? 別名、このコアはこのプログラムを処理していますが、プログラムを実行しないように指示したため、そのコアは何もしていません。どんな入力も役に立ちます。

4

3 に答える 3

1

SetThreadAffinityMask使用可能なプロセッサー/コアの一部のサブセットで実行するようにスレッドを制限するために使用できます。

SetThreadPriorityおよびを使用しSetProcessPriorityClassてスレッドをリアルタイムの優先度に設定すると、リアルタイムの優先度で実行されている他のスレッドのみがそのスレッドに割り込むことができ、他のスレッドを他のコアで強制的に実行することができます (2 つ以上のスレッドをリアルタイムの優先度に上げない限り)。

于 2014-01-28T18:51:44.380 に答える