WorkThread.h 664 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "../Common.h"
  3. NS_BF_BEGIN
  4. class WorkThread
  5. {
  6. public:
  7. BfpThread* mThread;
  8. int mStackSize;
  9. public:
  10. WorkThread();
  11. virtual ~WorkThread();
  12. virtual void Start();
  13. virtual void Stop();
  14. virtual void WaitForFinish();
  15. virtual bool WaitForFinish(int waitMS);
  16. virtual void Run() = 0;
  17. };
  18. class WorkThreadFunc : public WorkThread
  19. {
  20. public:
  21. void (*mFunc)(void*);
  22. void* mParam;
  23. public:
  24. // Note: this startProc signature does not match BfpThreadStartProc -- here we abstract out the calling convention to be default
  25. // on all platforms (cdecl)
  26. void Start(void (*func)(void*), void* param);
  27. virtual void Run() override;
  28. };
  29. NS_BF_END