?? thread.h
字號:
// Thread.h: interface for the CThread class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_THREAD_H__3AA11CA1_8FD0_424F_B8FA_74EEB361996F__INCLUDED_)
#define AFX_THREAD_H__3AA11CA1_8FD0_424F_B8FA_74EEB361996F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////////
// CThread類,封裝對線程的操作,屏蔽起在Windows和Unix平臺的差別
//
class CThread
{
public:
CThread();
virtual ~CThread();
//等待線程結(jié)束或者超過dwWaitTime時間
bool Wait(unsigned long dwWaitTime=INFINITE)
{
return (WAIT_OBJECT_0==WaitForSingleObject(m_hThread, dwWaitTime));
}
//停止線程,這并不是一個粗野的停止
//也就是說它只是設(shè)定停止標(biāo)志,然后就等待Run的停止
//然后等待dwWaitTime時間后返回,dwWaitTime在Unix平臺被忽略
//所以Stop函數(shù)依賴于用戶Run的實(shí)現(xiàn),即它會在什么時候檢查停止標(biāo)志并退出
//如果停止成功,返回真,否則返回假
bool Stop(unsigned long dwWaitTime=INFINITE)
{
if (false==bRunning) return true;
bRunning = false;
return Wait(dwWaitTime);
}
//檢查線程是否正在工作
bool IsRunning(void){ return bRunning;}
//線程啟動方法,啟動線程之后立即返回
void Start(void);
protected:
//Run方法必須被繼承重載
//用戶具體想實(shí)現(xiàn)的邏輯應(yīng)放在這里
virtual void Run()=0;
protected:
//ThreadAction
static DWORD WINAPI ThreadAction(LPVOID);
protected:
//m_hThread是線程句柄
HANDLE m_hThread;
bool bRunning;
};
#endif // !defined(AFX_THREAD_H__3AA11CA1_8FD0_424F_B8FA_74EEB361996F__INCLUDED_)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -