⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread.h

📁 一个c++实现的acd的例子。 ----ACDCommandListener.cpp ---ACDCommandListenerThread.cpp ---ACDConfig.cpp ---a
💻 H
字号:
#if !defined(Thread_H)
#define Thread_H


#include "SysEvent.h"

//#define UseWin32Thread

#if !defined(UseWin32Thread)
#include <process.h>
#endif

////////////////////////////////////////////////////////////////////////
// Thread 

//##ModelId=424BB6400288
class Thread
{
public:
	enum
	{
		idCancel,
		idSuspend,
		idResume,
		idEnd,
		idNoEvents
	};

private:
	
	//##ModelId=424BB6400289
	static long	m_delayTime;			// define time to delay for a thread sleep 

	//##ModelId=424BB6400298
	void *		m_pThreadData;			// data for this thread

	//##ModelId=424BB64002A7
	HANDLE		m_hThread;				// handle to thread
	//##ModelId=424BB64002A8
	DWORD		m_idThread;				// id of thread
	//##ModelId=424BB64002B8
	SysEvent	m_events[idNoEvents];	// base thread events

public:
	//##ModelId=424BB64002C6
	Thread ();
	//##ModelId=424BB64002C7
	~Thread ();


	// create/destroy
	//##ModelId=424BB64002C8
	bool 		create			( void * pThreadData = NULL );
	//##ModelId=424BB64002D6
	void		release			();


	// thread methods
	//##ModelId=424BB64002D7
	void *		getData			()				{ return m_pThreadData; }
	//##ModelId=424BB64002D8
	HANDLE		getHandle		()				{ return m_hThread; }
	//##ModelId=424BB64002D9
	DWORD		getId			()				{ return m_idThread; }

	// event methods
	//##ModelId=424BB64002E6
	bool		createThreadEvents ();

	//##ModelId=424BB64002E7
	HANDLE		getEvent		( long id )		{ return m_events[id].getEvent(); }
	//##ModelId=424BB64002F5
	void		setEvent		( long id )		{ m_events[id].set(); }
	//##ModelId=424BB64002F7
	void		resetEvent		( long id )		{ m_events[id].reset(); }

	//##ModelId=424BB6400305
	HANDLE		getEndEvent		()				{ return m_events[idEnd].getEvent(); }
	//##ModelId=424BB6400306
	void		setEndEvent		()				{ m_events[idEnd].set(); }

	//##ModelId=424BB6400307
	HANDLE		getCancelEvent	()				{ return m_events[idCancel].getEvent(); }
	//##ModelId=424BB6400308
	void		setCancelEvent	()				{ m_events[idCancel].set(); }
	//##ModelId=424BB6400315
	void		resetCancelEvent	()			{ m_events[idCancel].reset(); }

	// control
	//##ModelId=424BB6400316
	void		stop			();
	//##ModelId=424BB6400317
	void		suspend			();
	//##ModelId=424BB6400318
	void		resume			();
	//##ModelId=424BB6400324
	void		cancel			();


	// run method
	//##ModelId=424BB6400325
	virtual long run  ();

	// virtual idle method 
	//##ModelId=424BB6400327
	virtual void idle ()
	{}

	// static thread proc
	#if defined(UseWin32Thread)
	//##ModelId=424BB6400335
	static DWORD WINAPI		 threadProc		( LPVOID parameter );

	#else
	static unsigned _stdcall threadProc		( LPVOID parameter );
	#endif
};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -