MFC中關閉線程的方法是通過調用CWinThread類的ExitInstance()方法來關閉線程。ExitInstance()方法會在線程執行完畢后被調用,可以在該方法中進行線程的清理工作。下面是一個關閉MFC線程的示例代碼:
// 在主線程中關閉子線程
CWinThread* pThread = AfxBeginThread(MyThreadFunction, NULL);
// ...
// 關閉線程
pThread->PostThreadMessage(WM_QUIT, 0, 0);
// 子線程函數
UINT MyThreadFunction(LPVOID pParam)
{
// 線程執行的代碼
// ...
// 線程執行完畢,調用ExitInstance()方法關閉線程
AfxGetThread()->ExitInstance();
return 0;
}
在上面的示例代碼中,首先通過AfxBeginThread()函數創建一個子線程,并將線程函數指定為MyThreadFunction。然后,通過PostThreadMessage()函數向子線程發送WM_QUIT消息,通知子線程退出。最后,子線程執行完畢后,調用AfxGetThread()->ExitInstance()方法關閉線程。