-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWorkThread.h
More file actions
47 lines (38 loc) · 862 Bytes
/
WorkThread.h
File metadata and controls
47 lines (38 loc) · 862 Bytes
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
#pragma once
//////////////////////////////////////////////////////////////////////////
//
// 工作线程类
//
//////////////////////////////////////////////////////////////////////////
class CTask;
class CThreadPoolMang;
class CWorkThread
{
public:
CWorkThread(CThreadPoolMang* pThreadManger, int nIndex);
~CWorkThread(void);
private:
// 初始化、释放
void Initial();
void Release();
// 线程工作函数
static DWORD WINAPI threadPro(LPVOID pParam);
public:
// 任务开始前后、线程的准备、善后工作
bool BeforeWork(CTask* pTask);
bool AfterWork();
public:
//
bool ExecuteTask();
// 获取数据
HANDLE GetEvent(){return m_hEvent;}
void ExitThread(){m_bIsExit = true;}
bool IsExit(){return m_bIsExit;}
private:
CThreadPoolMang* m_pThreadPoolManger;
HANDLE m_hThread;
HANDLE m_hEvent;
CTask* m_pTask;
DWORD m_nThreadIndex;
bool m_bIsExit;
};