CreateThread(0, 0, accept_request, (void*)socketConnection, 0, &threadID); 让主线程执行到该代码时先执行新线程,等新线程执行完再执行主线程c++
时间: 2024-02-13 19:07:01 浏览: 68
CreateThread函数创建窗口线程.rar_createthread_线程 窗口_线程函数
`CreateThread` 函数是 Windows API 中用于创建新线程的函数,该函数将在新线程中执行 `accept_request` 函数,并且传递了一个指向 `socketConnection` 的指针作为参数。调用 `CreateThread` 函数时,它会立即创建一个新线程并将其运行起来,而不会等待新线程执行完毕。如果需要在主线程中等待新线程执行完毕后再继续执行主线程,可以使用 `WaitForSingleObject` 函数或者 `WaitForMultipleObjects` 函数来等待线程结束。示例代码如下:
```c++
HANDLE threadHandle = CreateThread(0, 0, accept_request, (void*)socketConnection, 0, &threadID);
if (threadHandle != NULL) {
WaitForSingleObject(threadHandle, INFINITE);
CloseHandle(threadHandle);
}
```
这段代码首先创建了一个新线程,并将其句柄保存在 `threadHandle` 变量中。然后调用 `WaitForSingleObject` 函数等待新线程结束,该函数会阻塞主线程直到新线程结束。最后调用 `CloseHandle` 函数关闭线程句柄,释放资源。这样可以确保主线程在新线程执行完毕后再继续执行。
阅读全文