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()メソッドを呼び出してスレッドを終了させています。

bannerAds