CreateThread正常创建线程后线程不运行

int main()
{
	HANDLE hThread=CreateThread(NULL,0,fun,NULL,0,NULL);
	if(hThread==NULL)
	{
		printf("err\n");
	}
}

上述代码在main函数中创建一个子线程,线程创建是没有问题的,但是线程却没有运行。

解决方案:

线程创建后添加如下代码

WaitForSingleObject(hThread,INFINITE);

原因:main退出时会自动调用ExitProcess(),操作系统会终止所有运行的线程。
WaitForSingleObject的目的是保证main在子线程运行期间不返回。

你可能感兴趣的:(C/C++,综合)