MSDN でスレッドの優先度について読んでいて、2 つのスレッドを持つテスト プログラムを作成しました。スレッドの 1 つはいくつかのテキストを出力してからスリープし、もう 1 つのスレッドは無限ループを実行して数値をインクリメントし、スリープせずにインクリメントします。後者のスレッドの優先度を前者よりも高く設定しました。これは、前者のスレッドが CPU 時間を取得しないことを意味するはずです。
しかし、それは..
どうしてこれなの?
最初のスレッドは、次を使用して作成されます。
HANDLE threadL = CreateThread(NULL, 0, threadLow, NULL, 0, &threadLiD);
もう一方のスレッドは、このコマンドを配置したメイン スレッドです。
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);