MFC 在ExitInstance函数中调用WaitForSingleObject
时间: 2024-01-21 20:18:18 浏览: 143
MFC 的框架在退出应用程序时,通常会在 CWinApp::ExitInstance 函数中调用 WaitForSingleObject 函数来等待应用程序中的所有线程都执行完成。这是为了确保程序能够完全退出,避免资源泄漏等问题。
在 MFC 中,可以使用 AfxGetThread、AfxBeginThread 和 AfxEndThread 等函数来启动和结束线程。在主线程中调用 WaitForSingleObject 函数来等待其他线程结束,例如:
```cpp
int CMyApp::ExitInstance()
{
// 等待线程结束
WaitForSingleObject(m_hThread, INFINITE);
// ... 其他清理工作 ...
return CWinApp::ExitInstance();
}
```
其中,m_hThread 是一个 HANDLE 句柄,表示启动的子线程。在子线程函数中,可以使用 AfxEndThread 函数来结束线程,例如:
```cpp
UINT MyThread(LPVOID lpParam)
{
// ... 线程执行的代码 ...
AfxEndThread(0);
}
```
这样,在主线程中调用 WaitForSingleObject 函数时,会等待 MyThread 函数执行完成后才返回。
阅读全文