WorkThreadPool.h
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. // WorkThreadPool.h: interface for the CWorkThreadPool class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_WORKTHREADPOOL_H__30AF8906_EE6D_4FAD_B0F3_5F4F8AEFB15E__INCLUDED_)
  5. #define AFX_WORKTHREADPOOL_H__30AF8906_EE6D_4FAD_B0F3_5F4F8AEFB15E__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "threadpoolmodel.h"
  10. class CWorkThreadPool:public CThreadPoolModel  
  11. {
  12. public:
  13. void SetThreadNum(int num = 3);
  14. void Stop();
  15. void SetPF(lpCallBack1 *f);
  16. void RegisterWorkItem(LPVOID item);
  17. int Run();
  18. CWorkThreadPool();
  19. virtual ~CWorkThreadPool();
  20. private:
  21. static UINT WORK(LPVOID lp);
  22. void RemoveWorkItem(LPVOID _pItem);
  23. UINT Work();
  24. LPVOID GetNextItem();
  25. CEvent m_exit;
  26. CCriticalSection m_lock;
  27. CEvent m_signal;
  28. CPtrArray m_workItems;
  29. lpCallBack1 *pf;
  30. int m_threadNum;
  31. inline HANDLE GetWorkEvent(void)
  32. {return m_signal.m_hObject;}
  33. };
  34. #endif // !defined(AFX_WORKTHREADPOOL_H__30AF8906_EE6D_4FAD_B0F3_5F4F8AEFB15E__INCLUDED_)