📄 athread.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 + -