首页 > 代码库 > windows系统调用 调度优先级
windows系统调用 调度优先级
1 #include "iostream" 2 #include "windows.h" 3 using namespace std; 4 5 class CWorkerThread{ 6 public: 7 CWorkerThread(LPCTSTR m_szName):m_szName(m_szName),m_hThread(INVALID_HANDLE_VALUE){ 8 m_hThread=CreateThread( 9 NULL, 10 0, 11 ThreadProc, 12 reinterpret_cast<LPVOID>(this), 13 0, 14 NULL 15 ); 16 } 17 18 virtual ~CWorkerThread(){CloseHandle(m_hThread);} 19 20 virtual void WaitForCompletion(){ 21 WaitForSingleObject(m_hThread,INFINITE); 22 } 23 24 virtual void SetPriority(int nPriority){ 25 SetThreadPriority(m_hThread,nPriority); 26 } 27 28 virtual void Suspend(){ 29 SuspendThread(m_hThread); 30 } 31 32 virtual void Resume(){ 33 ResumeThread(m_hThread); 34 } 35 36 protected: 37 static DWORD WINAPI ThreadProc(LPVOID lpParam){ 38 CWorkerThread *pThis= 39 reinterpret_cast<CWorkerThread*>(lpParam); 40 41 pThis->DoStuff(); 42 return (0); 43 } 44 45 virtual void DoStuff(){ 46 for(int n=0;n<100;n++){ 47 printf("Thread %s ID:%d,count %d\n",m_szName,GetCurrentThreadId(),n); 48 } 49 } 50 51 protected: 52 HANDLE m_hThread; 53 LPCTSTR m_szName; 54 }; 55 56 void main(){ 57 58 CWorkerThread wtB("B"); 59 CWorkerThread wtA("A"); 60 wtA.SetPriority(THREAD_PRIORITY_LOWEST); 61 62 63 wtA.WaitForCompletion(); 64 wtB.WaitForCompletion(); 65 66 cout<<"Both threads complete."<<endl; 67 68 getchar(); 69 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。