threadbase.h

来自「网络游戏魔域源代码 测试可以完整变异」· C头文件 代码 · 共 55 行

H
55
字号
// 线程基类
// 仙剑修,2001.11.15

#ifndef THREADBASE_H
#define THREADBASE_H

//#include <afxmt.h>
#include <windows.h>


class CThreadBase
{
public:		// 构造、析构
	//constructors
	CThreadBase();

	//destructor
	virtual ~CThreadBase();

public:		// 公共,由父线程调用。
	bool	CreateThread(bool bRun = true);		// false: 暂不运行,用 ResumeThread() 运行

	bool	ResumeThread();					// return false: 失败

	// 通知子线程关闭,并阻塞 nMilliseconds 毫秒。返回true: 线程关闭成功
	bool	CloseThread(long nMilliseconds = 0);

/////////////////////////////////////////////////////////////////////
protected:	// 派生用
	//overrideable
	virtual	void	OnInit() { }
	virtual bool	OnProcess() = 0;		// 不需要返回DWORD
	virtual void	OnDestroy() { }

/////////////////////////////////////////////////////////////////////
private:	// 内部使用
//	HANDLE	GetThreadHandle() { return m_hThread; }
	bool	IsCloseEvent(long nMilliseconds = 0);		// 检查关闭线程事件是否触发。用于 ThreadProc() 函数调用
	DWORD	ThreadProc();
	bool	IsCreated() { return (m_hThread != NULL); }

protected:
//	CCriticalSection m_xCtrl;		// 用于派生类中的变量共享控制
	HANDLE		m_hThread;
	HANDLE		m_hCloseThreadEvent;
	
/////////////////////////////////////////////////////////////////////
private:
	static DWORD WINAPI TrueThreadProc(LPVOID pParam);
};




#endif // THREADBASE_H

⌨️ 快捷键说明

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