MFC等待单线程结束
时间: 2023-08-13 11:06:30 浏览: 228
在MFC中,可以使用CWinThread类的WaitForSingleObject()函数等待单个线程结束。这个函数的原型如下:
DWORD WaitForSingleObject(
HANDLE hHandle, // 等待的对象句柄
DWORD dwMilliseconds // 最长等待时间
);
其中,hHandle参数为线程句柄,dwMilliseconds参数为等待的最长时间(以毫秒为单位)。如果线程在等待时间内结束,则函数返回WAIT_OBJECT_0;如果等待超时,则函数返回WAIT_TIMEOUT;如果发生错误,则返回其他值。
在一个MFC程序中,可以在主线程中创建其他线程,并使用WaitForSingleObject()函数来等待其他线程的结束。例如:
```c++
CWinThread* pThread = AfxBeginThread(MyThreadProc, pParam);
DWORD dwRet = WaitForSingleObject(pThread->m_hThread, INFINITE);
```
上述代码中,AfxBeginThread()函数用于创建一个新的线程,MyThreadProc是线程的入口函数,pParam是线程的参数。WaitForSingleObject()函数等待线程结束,并使用INFINITE参数表示等待时间无限长。当线程结束时,dwRet的值将为WAIT_OBJECT_0。
阅读全文