線程的掛起,喚醒和終止
//如果是利用h=AfxBeginThread()創建線程,需要獲取句柄,h->m_hThread
線程的掛起
在CreateThread()等函數創建線程時,可以指定線程的掛起狀態,
在運行過程中也可以掛起線程
DWORD SuspendThread(HANDLE hThread);
hThread表示線程的句柄
返回值:成功,返回值爲之前掛起的線程次數,失敗返回0Xffffffff
線程的喚醒
通過喚醒線程恢復線程的執行
DWORD ResumeThread(HANDLE hThread);
線程的終止
3種方式//建議第一種方法
1:DWORD dwExit;
BOOL ret=GetExitThread(m_p->handle,&dwExit)//根據句柄獲取線程的狀態
if(dwExit==STILL_ACTIVE)//線程還在活動
{
m_p->ExitInstance();
delete m_p;
}//其中m_p的類型是 CWinThread *;
2: ExitThread(DWORD dwExitCode);
dwExitCode與1中的dwExit相同
3:BOOL TeminateThread(HANDLE,DWORD dwExitCode);
線程的掛起
在CreateThread()等函數創建線程時,可以指定線程的掛起狀態,
在運行過程中也可以掛起線程
DWORD SuspendThread(HANDLE hThread);
hThread表示線程的句柄
返回值:成功,返回值爲之前掛起的線程次數,失敗返回0Xffffffff
線程的喚醒
通過喚醒線程恢復線程的執行
DWORD ResumeThread(HANDLE hThread);
線程的終止
3種方式//建議第一種方法
1:DWORD dwExit;
BOOL ret=GetExitThread(m_p->handle,&dwExit)//根據句柄獲取線程的狀態
if(dwExit==STILL_ACTIVE)//線程還在活動
{
m_p->ExitInstance();
delete m_p;
}//其中m_p的類型是 CWinThread *;
2: ExitThread(DWORD dwExitCode);
dwExitCode與1中的dwExit相同
3:BOOL TeminateThread(HANDLE,DWORD dwExitCode);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.