Thread.h 1012 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef __THREADBASE_H__
  2. #define __THREADBASE_H__
  3. //线程状态
  4. typedef enum _THREADSTATUS
  5. {
  6. THREADSTATUS_STOP = 0, // 停止
  7. THREADSTATUS_WAIT, // 等待
  8. THREADSTATUS_RUNNING, // 运行
  9. THREADSTATUS_EXIT, // 线程退出
  10. THREADSTATUS_END // 程序结束
  11. }THREADSTATUS;
  12. class CThreadBase
  13. {
  14. public:
  15. CThreadBase();
  16. virtual ~CThreadBase();
  17. virtual int Start();
  18. virtual int Stop();
  19. virtual void WakeUp();
  20. virtual void Exit();
  21. virtual THREADSTATUS Run() = 0;
  22. THREADSTATUS GetThreadStatus(){return m_ThreadStatus;}
  23. void SetThreadStatus(IN CONST THREADSTATUS status){m_ThreadStatus = status;}
  24. HANDLE GetThreadHanle(){return m_hThread;}
  25. unsigned int GetThreadID(){return m_nThreadID;}
  26. void Close();
  27. protected:
  28. int m_nIndex;
  29. HANDLE m_hThread;
  30. unsigned int m_nThreadID;
  31. THREADSTATUS m_ThreadStatus; // 线程状态
  32. HANDLE m_hWakeUpSignal; // 唤醒事件
  33. HANDLE m_hExitEvent; // 退出
  34. HANDLE m_hEvent[2]; // (执行和退出)事件
  35. };
  36. #endif //#ifndef __THREADBASE_H__