使用WaitForSingleObject函数等待新线程
WaitForSingleObject函数可以用来等待一个线程或者一个内核对象的状态变化。在等待一个新线程时,通常需要先创建一个线程,然后使用WaitForSingleObject函数等待该线程的结束。
下面是一个使用WaitForSingleObject函数等待新线程的示例代码:
#include <windows.h>
#include <stdio.h>
DWORD WINAPI ThreadFunc(LPVOID lpParam)
{
// 向控制台输出一段文本
printf("Hello, world!\n");
return 0;
}
int main()
{
HANDLE hThread;
DWORD dwThreadId;
// 创建一个新线程
hThread = CreateThread(NULL, 0, ThreadFunc, NULL, 0, &dwThreadId);
if (hThread == NULL)
{
printf("Failed to create thread!\n");
return 1;
}
// 等待新线程结束
WaitForSingleObject(hThread, INFINITE);
// 关闭线程句柄
CloseHandle(hThread);
return 0;
}
在上面的示例代码中,我们先创建了一个新线程,然后使用WaitForSingleObject函数等待该线程的结束。INFINITE参数表示等待时间为无限长,也就是一直等到新线程结束。
注意,在使用WaitForSingleObject函数等待一个线程结束时,需要先获取该线程的句柄。线程句柄可以通过CreateThread函数返回的第一个参数获取。等待结束后,需要关闭线程句柄,以释放线程所占用的系统资源。
原文地址: https://www.cveoy.top/t/topic/bC2m 著作权归作者所有。请勿转载和采集!