#ifndef __THREADBASE_H__ #define __THREADBASE_H__ //线程状态 typedef enum _THREADSTATUS { THREADSTATUS_STOP = 0, // 停止 THREADSTATUS_WAIT, // 等待 THREADSTATUS_RUNNING, // 运行 THREADSTATUS_EXIT, // 线程退出 THREADSTATUS_END // 程序结束 }THREADSTATUS; class CThreadBase { public: CThreadBase(); virtual ~CThreadBase(); virtual int Start(); virtual int Stop(); virtual void WakeUp(); virtual void Exit(); virtual THREADSTATUS Run() = 0; 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;} void Close(); protected: int m_nIndex; HANDLE m_hThread; unsigned int m_nThreadID; THREADSTATUS m_ThreadStatus; // 线程状态 HANDLE m_hWakeUpSignal; // 唤醒事件 HANDLE m_hExitEvent; // 退出 HANDLE m_hEvent[2]; // (执行和退出)事件 }; #endif //#ifndef __THREADBASE_H__