当前位置:首页 > windos > 正文

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

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 深圳 #003  void 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  }    

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow