简单封装线程相关函数

#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);
}
posted @ 2012-05-31 10:00  little evil  阅读(282)  评论(0编辑  收藏  举报