MFCでスレッドを終了させるにはどうすればよいですか。
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()メソッドを呼び出してスレッドを終了させています。