Windowsでスレッドが厳密な優先順位でスケジュールされていることに依存できる場合、はるかに簡単になるテストプログラムがあります。優先度の低いスレッドが優先度の高いスレッドと並行して実行されているのが見えます。これは、異なるスレッドが異なるプロセッサ コアでスケジュールされているために発生しているのではないかと考えています。
プロセス内のすべての Win32 スレッドを強制的に単一のプロセッサ コアを使用する方法はありますか? SetThreadAffinityMaskは興味深いかもしれませんが、そのドキュメントは完全に明確ではなく、使用方法もわかりません。