mfc 进程的优先级
知识点: 进程优先级 获取当前进程句柄 优先级设置 优先级变动 优先级获取 一、进程优先级(优先级等级) 简单的说就是进程(线程)的优先级越高,那么就可以分占相对多的CPU时间片。 每个进程都有相应的优先级,优先级决定它何时运行和占用 CPU 时间。最终的优先级共分32级,是从 0 到 31 的数值,称为基本优先级别。 (priority class)优先级等级,这里我叫它进程优先级。因为一般来说它是在调用CreateProcess时指定的,CreateProcess中dwCreationFlags就可以指定进程的优先级。而线程创建时会继承进程的优先等级。 因为线程才是CPU时间分配的最小单位,所以部分书上也叫线程优先等级。 进程优先级 priority class 标志 优先级值 idle (低) IDLE_PRIORITY_CLASS 4 Below 低于标准 BELOW_NORMAL_PRIORITY_CLASS 此值在2000以下系统不支持 normal (标准) NORMAL_PRIORITY_CLASS 9(前台) 或 7(后台) Above 高于标准 ABOVE_NORMAL_PRIORITY_CLASS 此值在2000以下系统不支持 high (高) HIGH_PRIORITY_CLASS 13 realtime (实时) REALTIME_PRIORITY_CLASS 24 #define NORMAL_PRIORITY_CLASS 0x00000020 #define IDLE_PRIORITY_CLASS 0x00000040 #define HIGH_PRIORITY_CLASS 0x00000080 #define REALTIME_PRIORITY_CLASS 0x00000100 //2000及XP以上版本支持以下 优先级等级 #define BELOW_NORMAL_PRIORITY_CLASS 0x00004000 #define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000 二、获取当前进程句柄 GetCurrentProcess 三、进程优先级的设置 CreateProcess 创建进程时 也可以设置 进程优先级 SetPriorityClass 设置进程优先级 GetPriorityClass 获取进程优先级 SetProcessPriorityBoost 设置 激活或停用进程优先级提高功能 GetProcessPriorityBoost 获取 是否 激活进程优先级提高功能 void CDialog_PROCESS::OnBnClickedRadio1() { SetPriorityClass(GetCurrentProcess(),IDLE_PRIORITY_CLASS); } void CDialog_PROCESS::OnBnClickedRadio2() { SetPriorityClass(GetCurrentProcess(),BELOW_NORMAL_PRIORITY_CLASS); } void CDialog_PROCESS::OnBnClickedRadio3() { SetPriorityClass(GetCurrentProcess(),NORMAL_PRIORITY_CLASS); } void CDialog_PROCESS::OnBnClickedRadio4() { SetPriorityClass(GetCurrentProcess(),ABOVE_NORMAL_PRIORITY_CLASS); } void CDialog_PROCESS::OnBnClickedRadio5() { SetPriorityClass(GetCurrentProcess(),HIGH_PRIORITY_CLASS); } void CDialog_PROCESS::OnBnClickedRadio6() { SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS); }