Thread.h 889 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 void Exit();
  19. virtual THREADSTATUS Run() = 0;
  20. void Suspend();
  21. void Resume();
  22. void Terminate();
  23. THREADSTATUS GetThreadStatus(){return m_ThreadStatus;}
  24. void SetThreadStatus(IN CONST THREADSTATUS status){m_ThreadStatus = status;}
  25. HANDLE GetThreadHanle(){return m_hThread;}
  26. unsigned int GetThreadID(){return m_nThreadID;}
  27. protected:
  28. HANDLE m_hThread;
  29. unsigned int m_nThreadID;
  30. THREADSTATUS m_ThreadStatus; // 线程状态
  31. DWORD m_dwOutTime;
  32. };
  33. #endif //#ifndef __THREADBASE_H__