由一个线程对象myT创建的多个线程中如何分别设置其优先级?(5分)

  • 主题发起人 主题发起人 dazzling
  • 开始时间 开始时间
D

dazzling

Unregistered / Unconfirmed
GUEST, unregistred user!
由一个线程对象myT创建的多个线程中如何分别设置其优先级?
比如myT:=Thread.Create(false);
myT:=Thread.Create(false);
myT:=Thread.Create(false);
这样会产生3个线程,如何分别设置它们的优先级?????
 
可以用shellapi 单元中的setthreadpriority设置
先介绍一下这个函数
BOOL SetThreadPriority(
HANDLE hThread, // handle to the thread
int nPriority // thread priority level
);
其中句柄就不用说了,说一下npriority有那几个值吧
THREAD_PRIORITY_ABOVE_NORMAL:比默认的稍高
THREAD_PRIORITY_BELOW_NORMAL:比默认的稍低
THREAD_PRIORITY_HIGHEST:这个级别最高
THREAD_PRIORITY_IDLE:这是是空闲,也就是在没有其它钱程时才运行它
THREAD_PRIORITY_LOWEST:这个是最低
THREAD_PRIORITY_NORMAL:正常的
具体作法如下:
setthreadpriority(thread1.handle,thread_priority_highest);
setthreadpriority(thread2.handle,thread_priority_normal);
以上是用WIN API 函数
不过也能用在THREAD类中的
 
介这我懂,其实它本身的priority属性就可以设置,不必使用API也可.
关键是你如何分别设置优先级?它是由一个线程对象创建的啊.
 
不知道你说的意思
能否详细一点
 
比如myT:=Thread.Create(false);
myT:=Thread.Create(false);
myT:=Thread.Create(false);
这样会产生3个线程,如何分别设置它们的优先级?????
 
后退
顶部