在MFC中等待子线程结束,可以使用CWinThread::WaitForSingleObject方法或者CWinThread::GetExitCodeThread方法。以下是一个通用版本的示例代码:
// 创建并启动子线程的函数
void StartMyThread()
{
CWinThread* pThread = AfxBeginThread(RUNTIME_CLASS(CMyThread));
// 设置线程优先级
pThread->SetThreadPriority(THREAD_PRIORITY_NORMAL);
// 等待子线程结束
DWORD dwExitCode;
::WaitForSingleObject(pThread->m_hThread, INFINITE);
::GetExitCodeThread(pThread->m_hThread, &dwExitCode);
// 可以根据返回值进行处理
// 关闭句柄
::CloseHandle(pThread->m_hThread);
}
class CMyThread : public CWinThread
{
public:
virtual BOOL InitInstance();
};
BOOL CMyThread::InitInstance()
{
// 在这里执行耗时操作
return TRUE;
}
上述代码中,通过调用`AfxBegin
内容由零声教学AI助手提供,问题来源于学员提问




