1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #ifndef __THREADBASE_H__
- #define __THREADBASE_H__
- //线程状态
- typedef enum _THREADSTATUS
- {
- THREADSTATUS_STOP = 0, // 停止
- THREADSTATUS_WAIT, // 等待
- THREADSTATUS_RUNNING, // 运行
- THREADSTATUS_EXIT, // 线程退出
- THREADSTATUS_END // 程序结束
- }THREADSTATUS;
- #define MAX_SEMAPHONE_NUM 20 // 最大信号量
- class CThreadBase
- {
- public:
- CThreadBase();
- virtual ~CThreadBase();
- virtual int Start();
- virtual void WakeUp();
- virtual void Exit();
-
- virtual THREADSTATUS Run() = 0;
- void SetSemaphoreNum(IN CONST int nNum){m_nSemaphoreNum = nNum;}
- THREADSTATUS GetThreadStatus(){return m_ThreadStatus;}
- void SetThreadStatus(IN CONST THREADSTATUS status){m_ThreadStatus = status;}
- HANDLE GetThreadHanle(){return m_hThread;}
- unsigned int GetThreadID(){return m_nThreadID;}
- protected:
- int m_nIndex;
- HANDLE m_hThread;
- unsigned int m_nThreadID;
- THREADSTATUS m_ThreadStatus; // 线程状态
- HANDLE m_hSemaphore; // 信号量
- int m_nSemaphoreNum; // 信号数量
- HANDLE m_hExit; // 退出事件
- };
- #endif //#ifndef __THREADBASE_H__
|