私はデータをソートするプログラムに取り組んでおり、プロセスを優先度31に設定する必要があります。これは、Windowsで最も高いプロセス優先度であると思います。私はいくつかの調査を行いましたが、C++でそれを行う方法を理解できません。
29600 次
3 に答える
16
Windows API呼び出しのSetPriorityClassを使用すると、プロセスの優先度を変更できます。MSDNドキュメントの例を参照し、REALTIME_PRIORITY_CLASSを使用して最高の優先度を設定します。
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS)
注意:真のリアルタイム優先度を求めている場合は、それを取得します。これは核兵器です。OSは、OSレベルの入力処理、ディスクキャッシュのフラッシュ、およびその他の優先度の高いタイムクリティカルなタスクよりもはるかに高い、リアルタイムの優先スレッドを容赦なく優先します。リアルタイムスレッドがCPU容量を使い果たした場合、システム全体を簡単にロックアップできます。これを行うときは注意が必要です。どうしても必要な場合を除いて、代わりに優先度の高いものを使用することを検討してください。詳しくは
于 2011-03-07T05:59:44.290 に答える
1
SetPriorityClassの後(または前)に、可能な最大値を達成するために個々のスレッドの優先度を設定する必要があります。さらに、リアルタイム優先度クラスには別のセキュリティトークンが必要なので、必ず取得してください(アクセス可能な場合)。SetThreadPriorityは、SetPriorityClassの後のセカンダリAPIです。
于 2011-03-08T01:59:33.343 に答える