#pragma once
#include <windows.h>
class THREAD
{
public:
HANDLE hThread;
THREAD();
~THREAD();
//常用函数
BOOL Create(LPVOID Address,LPVOID lpParameter);
void Terminate();
void Suspend();
void Resume();
void WaitForEnd();
};
THREAD::THREAD()
{
this->hThread=NULL;
}
THREAD::~THREAD()
{
::CloseHandle(this->hThread);
}
//创建线程(函数地址,参数)
BOOL THREAD::Create(LPVOID Address,LPVOID lpParameter=NULL)
{
this->hThread=::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Address,lpParameter,0,NULL);
if (this->hThread)
return TRUE;
else
return FALSE;
}
//结束线程()
void THREAD::Terminate()
{
::TerminateThread(this->hThread,0);
}
//挂起线程()
void THREAD::Suspend()
{
::SuspendThread(this->hThread);
}
//恢复线程()
void THREAD::Resume()
{
::ResumeThread(this->hThread);
}
//等待线程执行完毕()
void THREAD::WaitForEnd()
{
::WaitForSingleObject(this->hThread,INFINITE);
}