Clone of Akilla's ac2d @ https://github.com/deregtd/AC2D

cThread.h 543B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. class cLockable {
  3. public:
  4. cLockable();
  5. ~cLockable();
  6. void Lock();
  7. void Unlock();
  8. bool GetLocked();
  9. private:
  10. CRITICAL_SECTION m_csLock;
  11. bool m_bLocked;
  12. };
  13. class cThread : public cLockable {
  14. public:
  15. cThread();
  16. ~cThread();
  17. void Start();
  18. void Stop();
  19. void SetStopped();
  20. bool GetStopped();
  21. virtual void Run() = 0;
  22. protected:
  23. bool m_bQuit;
  24. bool m_bStopped;
  25. private:
  26. HANDLE m_hThread;
  27. DWORD m_dwThreadID;
  28. static DWORD WINAPI ThreadProc(cThread *This)
  29. {
  30. This->Run();
  31. This->SetStopped();
  32. return 0;
  33. }
  34. };