九、程序的优先级
(1)进程优先级
当调用CreatProcess时,可以在fdwCreate参数中传递需要的优先级类, 创建子进程的进程负责选择子进程运行的优先级类。
优先级类 标 识 符
实时 REALTIME _PRIORITY _ CLASS
高 HIGH_PRIORITY _ CLASS
高于正常 ABOVE _ NORMAL _PRIORITY _ CLASS
正常 NORMAL _PRIORITY _ CLASS
低于正常 BELOW _NORMAL _PRIORITY _ CLASS
空闲 IDLE _PRIORITY _ CLASS
BOOL SetPriorityClass(HANDLE hProcess,DWORD fdwPriority);
只要拥有该进程的句柄和足够的访问权,就能够改变系统中运行的任何进程的优先级类。将hProcess标识的优先级类改为fdwPriority参数中设定的值。fdwPriority参数可以是上表的标识符之一。
DWORD GetPriorityClass(HANDLE hProcess);
检索进程的优先级类,返回上表中列出的标识符之一。
(2)线程优先级
相对线程优先级 标识符常量
关键时间 THREAD_PRIORITY_TIME_CRITICAL
最高 THREAD_PRIORITY_ HIGHEST
高于正常 THREAD_PRIORITY_ABOVE _ NORMAL
正常 THREAD_PRIORITY_ NORMAL
低于正常 THREAD_PRIORITY_BELOW _ NORMAL
最低 THREAD_PRIORITY_LOWEST
空闲 THREAD_PRIORITY_ IDLE
BOOL SetThreadPriority(HANDLE hThread,int nPriority);
int GetThreadPriority(HANDLE hThread);
分别用于设置和返回线程优先级。
CreatProcess函数创建的新函数带有的相对优先级总是正常优先级。