标签:class blog code com get string
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 |
#include "iostream" #include "windows.h" using
namespace std; class
CWorkerThread{ public : CWorkerThread(LPCTSTR m_szName):m_szName(m_szName),m_hThread(INVALID_HANDLE_VALUE){ m_hThread=CreateThread( NULL, 0, ThreadProc, reinterpret_cast<LPVOID>( this ), 0, NULL ); } virtual
~CWorkerThread(){CloseHandle(m_hThread);} virtual
void WaitForCompletion(){ WaitForSingleObject(m_hThread,INFINITE); } virtual
void SetPriority( int
nPriority){ SetThreadPriority(m_hThread,nPriority); } virtual
void Suspend(){ SuspendThread(m_hThread); } virtual
void Resume(){ ResumeThread(m_hThread); } protected : static
DWORD WINAPI ThreadProc(LPVOID lpParam){ CWorkerThread *pThis= reinterpret_cast<CWorkerThread*>(lpParam); pThis->DoStuff(); return
(0); } virtual
void DoStuff(){ for ( int
n=0;n<10;n++){ cout<< "Thread" <<m_szName<< "ID:" <<GetCurrentThreadId()<< ",count" <<n<<endl; } } protected : HANDLE m_hThread; LPCTSTR m_szName; }; void
main(){ CWorkerThread wtA( "A" ); CWorkerThread wtB( "B" ); wtA.SetPriority(THREAD_PRIORITY_LOWEST); wtB.Suspend(); wtA.WaitForCompletion(); wtB.Resume(); wtB.WaitForCompletion(); cout<< "Both threads complete." <<endl; getchar(); } |
windows系统调用 线程 启动与挂起,布布扣,bubuko.com
标签:class blog code com get string
原文地址:http://www.cnblogs.com/593213556wuyubao/p/3781458.html