开新线程的一种方法

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;
       }
}

本文出自 “会飞de树(往github迁移中)” 博客,转载请与作者联系!

你可能感兴趣的:(职场,休闲,开新线程)