CreateThreadスレッドが正常に作成されてもスレッドは実行されません
int main()
{
HANDLE hThread=CreateThread(NULL,0,fun,NULL,0,NULL);
if(hThread==NULL)
{
printf("err
");
}
}
上記のコードはmain関数にサブスレッドを作成し、スレッド作成は問題ありませんが、スレッドは実行されません.
ソリューション:
スレッド作成後に次のコードを追加
WaitForSingleObject(hThread,INFINITE);
理由:mainが終了すると自動的にExitProcess()が呼び出され、オペレーティングシステムは実行中のすべてのスレッドを終了します.WaitForSingleObjectの目的は、mainがサブスレッドの実行中に返されないことを保証することです.