1

我的意思是这个命令:

system("myprogram.exe");

有没有办法让它在低于正常优先级模式下运行?

4

3 回答 3

3

WINAPI 有一个函数调用CreateProcess(),允许指定优先级:

dwCreationFlags [输入]

    控制优先级和进程创建的标志。
有关值的列表,请参阅进程创建标志。

    此参数还控制新进程的优先级,即
用于确定进程线程的调度优先级。
有关值的列表,请参阅 GetPriorityClass。如果没有优先级
flags 指定,优先级类默认为 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

我认为这是一个更完整的答案:

三个不同的选项(这些不是步骤):

  • CreateProcess期间,指定进程优先级 CLASS(各个线程优先级派生自进程优先级类)。
  • 启动应用程序后,使用SetPriorityClass。这使您可以随意更改优先级 CLASS。
  • 通过SetThreadPriority更改单个线程的优先级。这些按照“基础”优先级 CLASS 上下移动。

有关详细信息,请参阅 MSDN。

于 2012-06-04T15:33:22.810 回答