频道分类

Delphi SetPriorityClass 设置当前程序的优先级

作者:admin 来源: 日期:2019/10/31 22:18:53 人气: 标签:

 
在一些特定的情况下,我们需要设定我们程序的优先级比较高,这样能保证在程序的运行过程中,程序几乎不用考虑在被CPU执行时不被其他程序意外抢占。

在winbase.h中是这样定义的:

1.函数定义:

WINBASEAPI
BOOL
WINAPI
SetPriorityClass(
    __in HANDLE hProcess,
    __in DWORD dwPriorityClass
    );

第一个参数为进程的句柄,第二个参数为优先级的级别。
2.优先级定义:
#define NORMAL_PRIORITY_CLASS         0x00000020
#define IDLE_PRIORITY_CLASS                0x00000040
#define HIGH_PRIORITY_CLASS               0x00000080

如果我们需要设置自己的程序为最高优先级,我们可以在程序启动后调用:

SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
————————————————
delphi 用法:

{ 调整进程 }
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);

 { 调整进程、线程级别到最高级别 }
  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);