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

📄 athread.h

📁 UHF RFID Reader Program
💻 H
字号:
#pragma once

namespace techwin
{
	//////////////////////////////////////////////////////////////////////////
	// Worker Thread Class #4
	// Programmed by Youngho Kim  [2007/08/09]
	//////////////////////////////////////////////////////////////////////////

	class AThread
	{
	public:
		AThread();
		virtual ~AThread();
		// 郴何俊辑 Stop()阑 何抚

		BOOL Create();
		// 胶饭靛甫 积己窍绊 倒酒啊霸 茄促.

		BOOL Stop();
		// 胶饭靛甫 沥瘤矫挪促.
		// 碍力 辆丰窍瘤绰 臼绊, 胶饭靛 辆丰 捞亥飘甫 截款 第 沥瘤且 锭鳖瘤 扁促府霸 等促.
		// (捞固 辆丰沁栏搁 溜矫 府畔茄促)
		// 静饭靛俊辑 CheckStop()阑 犬牢窍瘤 臼栏搁 康盔洒 扁促府霸 等促;;
		// (况目胶饭靛 郴何俊辑 Stop()阑 荤侩窍搁 胶饭靛啊 辆丰登瘤 臼绊 公茄洒 喉废寸窍聪 林狼且 巴)

		void NotifyStop();
		// 胶饭靛甫 沥瘤矫挪促.
		// 碍力 辆丰窍瘤绰 臼绊, 胶饭靛 辆丰 捞亥飘甫 截快扁父 茄促. 胶饭靛啊 场唱扁甫 扁促府柳 臼绰促.
		// 况目胶饭靛 郴何俊辑 辆丰炼扒阑 汲沥窍绊 酵阑 锭俊 荤侩且 荐 乐促.

		virtual INT Run() = 0;
		// 捞 窃荐甫 坷滚扼捞靛秦辑 橇肺弊贰怪窍搁 等促.
		// Create()啊 阂啡阑 锭 况目 胶饭靛肺 捞 窃荐啊 矫累等促.

		BOOL IsActive() const;
		// 胶饭靛咯, 弊措绰 酒流 倒绊 乐绰啊?

		HANDLE GetHandle() const
		{
			return m_hThread;
		}

		DWORD GetThreadID() const
		{ 
			return m_dwThreadID;
		}

		INT GetThreadPriority() const
		{ 
			return ::GetThreadPriority(m_hThread);
		}

		BOOL SetThreadPriority(INT nPriority)
		{
			return ::SetThreadPriority(m_hThread, nPriority);
		}

		DWORD ResumeThread()
		{
			return ::ResumeThread(m_hThread);
		}

		DWORD SuspendThread()
		{
			return ::SuspendThread(m_hThread);
		}

		DWORD KillThread( DWORD code )
		{
			return ::TerminateThread(m_hThread, code);
		}

		void DeleteAfterCompletion( BOOL yesno )
		{
			m_bDeleteMeAfterCompletion = yesno;
		}

//		BOOL IsStopRequest() const;

	public:
		HANDLE		m_hThreadCallEvent;

	protected:
		DWORD		m_dwThreadID;
		HANDLE		m_hThread;
		HANDLE		m_hStopEvent;
//		BOOL		m_bStopRequest;

		BOOL        m_bDeleteMeAfterCompletion;
		BOOL        m_bWaitForThreadToExitWhenStop;

		static DWORD WINAPI ThreadProc(LPVOID lpParam);

		// 寇何俊辑 Stop()阑 阂范栏搁 TRUE啊 等促.
		// 胶饭靛啊 档绰 档吝俊 林扁利栏肺 犬牢秦 林绢具 茄促!
		BOOL CheckStop() const
		{
			return(::WaitForSingleObject(m_hStopEvent, 0) == WAIT_OBJECT_0);
		}

	private:
		void operator = ( const AThread& rhs );
		AThread( const AThread& rhs );
	};
}

⌨️ 快捷键说明

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