| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- #pragma once
 
- #include <vector>
 
- #include <map>
 
- typedef std::map<HANDLE, int> EventMapType;
 
- class CEventThread
 
- {
 
- public:
 
- 	CEventThread(void);
 
- 	~CEventThread(void);
 
- 	static unsigned int __stdcall EventThreadFnc(void* thisptr);
 
- protected:
 
- 	virtual void OnEvent(int eventId, void *param)	{ return; }
 
- 	virtual void OnTimeOut(void *param) { return; }
 
- 	void RunThread();
 
- 	bool UndoFireEvent(int eventId);
 
- 	UINT m_threadID;
 
- 	HANDLE m_thread;
 
- 	HANDLE m_hEvt;
 
- 	EventMapType m_eventMap;
 
- 	bool m_exitThread;
 
- 	bool m_threadRunning;
 
- 	bool m_threadWasStarted;
 
- 	void *m_param;
 
- 	int m_waitTimeout;
 
- 	CString m_threadName;
 
- public:
 
- 	void Start(void *param = NULL);
 
- 	void Stop(int waitTime = 5000); 
 
- 	void AddEvent(int eventId);
 
- 	void AddEvent(int eventId, CString name);
 
- 	bool FireEvent(int eventId);
 
- 	bool IsCancelled() { return m_exitThread; }
 
- 	void CancelThread() { m_exitThread = true; }
 
- 	bool IsRunning() { return m_threadRunning; }
 
- 	bool ThreadWasStarted() { return m_threadWasStarted; }
 
- 	void WaitForThreadToExit(int waitTime);
 
- };
 
 
  |