Windows API一日一练(49)SetThreadPriority和GetThreadPriority函数

<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
Windows 是抢先式执行任务的操作系统,无论进程还是线程都具有优先级的选择执行方式,这样就可以让用户更加方便处理多任务。比如当你一边听着音乐,一边上网时,这时就可以把音乐的任务执行级别高一点,这样不让音乐听起来断断续续。当你编写网络程序时,一个线程从网络接收数据,一个线程写数据到硬盘,这时也可以把网络接收线程的优先级设置高一点,因为可以把接收到的数据写到内存里去,然后缓存起来再写到硬盘里。还有一种任务,当你写的程序需要在空闲时才去执行,这时就需设置线程的优先级。这样就使用到 SetThreadPriority GetThreadPriority 函数来设置线程的优先级和获取线程的优先级。
函数 SetThreadPriority GetThreadPriority 声明如下:
BOOL
WINAPI
SetThreadPriority(
__in HANDLE hThread,
__in int nPriority
);
hThread 是线程的句柄。
nPriority 是线程的优先级。
WINBASEAPI
int
WINAPI
GetThreadPriority(
__in HANDLE hThread
);
hThread 是线程的句柄。
返回值 是线程的优先级。
调用函数的例子如下:
#001// 设置线程的优先级和获取线程的优先级。
#002// 蔡军生 2007/10/11 QQ:9073204 深圳
#003void ThreadPriority(void)
#004{
#005 //
#006 ::SetThreadPriority(m_hThread,THREAD_PRIORITY_HIGHEST);
#007
#008 //
#009 if (::GetThreadPriority(m_hThread) == THREAD_PRIORITY_HIGHEST)
#010 {
#011 //
#012 OutputDebugString(_T("THREAD_PRIORITY_HIGHEST\r\n"));
#013 }
#014
#015}



你可能感兴趣的:(多线程,thread,windows,qq,音乐)