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函数返回的第一个参数获取。等待结束后,需要关闭线程句柄,以释放线程所占用的系统资源。

使用WaitForSingleObject函数等待新线程

原文地址: https://www.cveoy.top/t/topic/bC2m 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录