public:
    BOOL StartCopy();
protected:
    static UINT __stdcall __ThreadWrokFunc(LPVOID pParam);
    
    void StopCopy();

 
*****************************************

 
BOOL CCopy::StartCopy()
{
    UINT nThreadID = 0;
    int nVal = _beginthreadex(NULL, 0, __ThreadWrokFunc, (void *)this, 0, &nThreadID);

 
    if( nVal <= 0 )
    {
        return FALSE;
    }
    m_hThread = reinterpret_cast<HANDLE>(nVal); // 通过返回值获得线程句柄
    return TRUE;
}

 

 

 
UINT __stdcall CCopy::__ThreadWrokFunc( LPVOID pParam )
{
    CCopy * pCopyThread = reinterpret_cast<CCopy *> (pParam);//强制转换成CCopy类
    return TRUE;
}

 
void CCopy::StopCopy()
{   
    if (m_hThread)
    {
        ::TerminateThread(m_hThread,1);
        CloseHandle (m_hThread);
        m_hThread = NULL;
    }
}