1

私はこのコマンドを意味します:

system("myprogram.exe");

たとえば、通常より低い優先度モードで実行する方法はありますか?

4

3 に答える 3

3

WINAPIにはCreateProcess()、優先度の指定を可能にするという関数があります。

dwCreationFlags [in]

    優先度クラスとプロセスの作成を制御するフラグ。
値のリストについては、「プロセス作成フラグ」を参照してください。

    このパラメータは、新しいプロセスの優先度クラスも制御します。
プロセスのスレッドのスケジューリング優先順位を決定するために使用されます。
値のリストについては、GetPriorityClassを参照してください。優先クラスがない場合
フラグが指定されている場合、優先度クラスのデフォルトはNORMAL_PRIORITY_CLASSです。
作成プロセスの優先度クラスがIDLE_PRIORITY_CLASSでない限り
またはBELOW_NORMAL_PRIORITY_CLASS。この場合、子プロセスは
呼び出しプロセスのデフォルトの優先度クラス。
于 2012-05-31T21:58:14.830 に答える
2

アプリケーションのメインスレッドでSetThreadPriority()を使用できます

于 2012-05-31T21:59:47.940 に答える
1

私はこれがより完全な答えだと思います:

3つの異なるオプション(これらはステップではありません):

  • CreateProcess中に、プロセス優先度CLASSを指定します(個々のスレッド優先度はプロセス優先度クラスから派生します)。
  • アプリケーションの起動後、SetPriorityClassを使用します。これにより、優先度CLASSを自由に変更できます。
  • SetThreadPriorityを使用して個々のスレッドの優先順位を変更します。これらは、「基本」優先度クラスに従って上下します。

詳細については、MSDNを参照してください。

于 2012-06-04T15:33:22.810 に答える