如何搭建_beginthreadex创建显示失败的环境

也就是说_beginthreadex什么条件下就会创建一个无效线程句柄?在代码正确的情况下

无效线程句柄,你指的应该是 -1 (INVALID_HANDLE_VALUE), 线程创建失败的情况下,就会返回-1。 至于创建失败的情况,有很多吧,比如
ERROR_NOT_ENOUGH_MEMORY 没有足够的空间 等等原因,具体原因可以使用Getlasterror获取。

修正我上面的回答 (不好意思,你是问的搭建环境的方法)

unsigned int __stdcall pro(void* pParam)
{
return 0;
}

for (int i=0;;i++)
{
HANDLE h = (HANDLE)_beginthreadex(0, 0, pro, NULL, CREATE_SUSPENDED, 0);
printf("h = %d i=%d \n", h, i);

    if (INVALID_HANDLE_VALUE == h)
    {
        printf("err = %d\n", GetLastError());
        break;
    }
    else if (h == 0)
    {
        printf("err = %d\n", GetLastError());
        break;
    }

}
getchar();


运行结果为:
....
...
h=5888 i=1449
h=0 i=1450
err = 8


看来返回0,应该也是无效的