SetPriorityClass函数设置指定进程的优先级。该值与进程的每个线程的优先级值一起确定每个线程的基本优先级。
BOOL SetPriorityClass(
HANDLE 【hProcess】, | //处理进程 |
DWORD 【dwPriorityClass】 | //优先级值 |
); |
参数
【hProcess】
标识过程。
Windows NT:句柄必须具有PROCESS_SET_INFORMATION权限。有关详细信息,请参阅过程对象.
【dwPriorityClass】
指定进程的优先级。指定以下值之一:
优先 | 含义 |
HIGH_PRIORITY_CLASS | 为执行必须立即执行的时间关键任务的进程指定此类。进程的线程抢占正常或空闲优先级进程的线程。一个例子是Windows任务列表,无论操作系统上的负载如何,Windows任务列表在用户调用时都必须快速响应。使用高优先级类时要格外小心,因为高优先级的应用程序可以使用几乎所有可用的CPU时间。 |
IDLE_PRIORITY_CLASS | 为线程仅在系统空闲时运行的进程指定此类。进程的线程由在较高优先级类中运行的任何进程的线程抢占。一个例子是屏幕保护程序。空闲优先级类由子进程继承。 |
NORMAL_PRIORITY_CLASS | 为没有特殊调度需求的进程指定此类。 |
REALTIME_PRIORITY_CLASS | 为具有最高可能优先级的进程指定此类。该进程的线程抢占所有其他进程的线程,包括执行重要任务的操作系统进程。例如,执行超过非常短的间隔的实时进程可能导致磁盘缓存不会刷新或导致鼠标无响应。 |
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
每个线程都具有由线程的优先级值及其进程的优先级等级确定的基本优先级。系统使用所有可执行线程的基本优先级来确定哪个线程获得下一个CPU时间片。SetThreadPriority功能允许设置线程的基本优先级相对于其进程的优先级。有关详细信息,请参阅调度重点.
也可以看看
CreateProcess, CreateThread, GetPriorityClass, GetThreadPriority, SetThreadPriority