易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi多线程学习(8):优先级

一个线程的优先级取决于创建线程的进程的优先级(priority class)和线程本身相对的优先级(relative priority)。
    1、进程优先级:
    不同操作系统 优先级数目不同。Windows2000以上的版本列表如下:
Idle:(标志:IDLE_PRIORITY_CLASS,值为$40);
Below Normal:(标志:BELOW_NORMAL_PRIORITY_CLASS,值为$4000);
Normal:(标志:NORMAL_PRIORITY_CLASS,值为$20);
Above Normal:(标志:ABOVE_NORMAL_PRIORITY_CLASS,值为$8000);
High:(标志:HIGH_PRIORITY_CLASS,值为$80);
Realtime:(标志:REALTIME_PRIORITY_CLASS,值为$100)。
进程的缺省优先级为Normal,几乎所有场合都不应将优先级设为Realtime。
创建进程时给定优先级,只要在CreateProcess中,将优先级标志做“OR”操作,填入dwCreationFlags参数中。
取得活动进程的优先级:
   function GetPriorityClass(hProcess:THandle):DWORD;stdcall;
设置活动进程的优先级:
   function SetPriorityClass(hProcess:THandle;dwPriorityClass:DWORD);BOOL;
(上面两个函数的hProcess由GetCurrentProcess函数获得,这个句柄不用CloseHandle关闭)
    2、线程相对优先级:
    线程优先级分7类,如下:
tpIdle:(常量:THREAD_PRIORITY_IDLE,值为-15);
tpLowest:(常量:THREAD_PRIORITY_LOWEST,值为-2);
tpBelow Normal:(常量:THREAD_PRIORITY_BELOW_NORMAL,值为-1);
tpNormal:(常量:THREAD_PRIORITY_NORMAL,值为0);
tpAbove Normal:(常量:THREAD_PRIORITY_ABOVE_NORMAL,值为1);
tpHighest:(常量:THREAD_PRIORITY_HIGEST,值为2);
tpTimeCritical:(常量:THREAD_PRIORITY_TIME_CRITICAL,值为15);
对于线程类TThread,改变线程优先级非常方便,只要将派生类的Priority属性相应设置就好了。如:MyThread.Priority:=tpHighest;
  3、线程优先级计算:
     如果线程优先级为tpIdle,无论它所处的进程优先级是多少,线程整体优先级总是1,但是,当进程优先级为Realtime时,那么与tpIdle相组合,线程整体优先级为16;
     如果线程优先级为tpTimeCritical,无论它所处的进程优先级为多少,整体优先组都是15,但是,当进程优先级是Realtime时,那与tpTim


相关文档:

SDL & Object Pascal (Delphi) [3] 制作一个选单


一个选单大致是这样:
1.可以被以某种形式呼叫出来,如按下esc;
2.在这个选单中功能键有不同的定义,如原本方向键控制走路,但现在改为控制光标的位置;
3.按下确定键后有对应功能被执行;
4.可以被关闭。
那么我的办法是编写两个子程,其中一个处理选单中的事件,另外一个专门负责画选单。
在从步行切换到选单 ......

关于delphi Move函数的用法详解

使用delphi多年,前些天忽然遇到不会string转pbyte,很是失落,此时对于编程基本功的重要性深有体会.这其中用到MOVE函数.
使用delphi多年,前些天忽然遇到不会string转pbyte,很是失落,此时对于编程基本功的重要性深有体会.这其中用到MOVE函数.
 搞了好一会才搞明白其用法.所以想贴出来帮助需要帮助的人.
var
 &nb ......

delphi 快捷键的使用

CTRL+SPACE 代码补全,很好用的(先改了输入法热键)
CTRL+SHIFT+C 编写申明或者补上函数
CTRL+SHIFT+↑(↓) 在过程、函数、事件内部, 可跳跃到相应的过程、函数、事件的定义(在INTERFACE和IMPLEMENTATION之间来回切换)
CTRL+SHIFT+G 插入GUID
CTRL+J (弹出DELPHI语句提示窗口,选择所需语句将自动完成一条 ......

Delphi多线程学习(7):事件Event

Event事件用法与Mutex差不多,但它可以使用:SetEvent(启动运行)ResetEvent(暂停运行)、PulseEvent(执行一次后立即暂停)。
       先看一下创建函数:CreateEvent(
                   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号