?? thread.cpp
字號:
#include "stdafx.h"
#include "Thread.h"
//===================================================================================
CThread::CThread()
{
m_Stop = false;
m_pWorkFun=0;
m_Param=0;
m_hThread=0;
}
CThread::~CThread(){}
//==================================================================================
void CThread::Create(DWORD (*pWorkFun)(void* lpParam,CThread*),void* lpParam) //由主程序調(diào)用,創(chuàng)建后臺線程
{
DWORD dwThreadId;
m_pWorkFun=pWorkFun;
m_Param=lpParam;
m_hThread = CreateThread(
NULL, // default security attributes
0, // use default stack size
ThreadFun, // thread function
this, // argument to thread function
0, // use default creation flags
&dwThreadId); // returns the thread identifier
}
//==================================================================================
bool CThread::IsStop()
{
bool stop ;
m_Lock.Lock();
stop = m_Stop;
m_Lock.UnLock();
return stop;
}
//==================================================================================
void CThread::Destroy()
{
m_Lock.Lock();
m_Stop = true;//關(guān)閉后臺線程
m_Lock.UnLock();
WaitForSingleObject(m_hThread, 2000);//等待后臺線程確實已經(jīng)關(guān)閉
CloseHandle(m_hThread);
}
//=================================================================================
DWORD WINAPI ThreadFun(void* lpParam)
{
CThread *p=(CThread*)lpParam;
if(p->m_pWorkFun)
return p->m_pWorkFun(p->m_Param,p);
return 0;
}
//==================================================================================
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -