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