VC++中通过CreateThread创建的线程,当线程入口函数执行完后,线程自己会关闭吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++中通过CreateThread创建的线程,当线程入口函数执行完后,线程自己会关闭吗?相关的知识,希望对你有一定的参考价值。
不会自己关闭的。
正确的做法是:
HANDLE hThread = CreateThread(.....)
// 等待线程完成,如果是多线程的,需要调用WaitForMultipleObjects
WaitForSingleObjects(MAX_THREADS,hThread,TRUE,INFINITE);
// 最后关闭句柄
CloseHandle(hThread ); 参考技术A 线程函数结束 线程就结束 当然是关闭了; 但是 线程句柄要手动closehandle的 亲
WIN32 创建线程CreateThread
#include <stdio.h>
#include <iostream>
#include <windows.h>
using namespace std;
//定义线程调用函数
DWORD WINAPI ThreadProc(LPVOID lpParamter)
{
int iRunTime = 0;
while(++iRunTime<10)//执行10次跳出
{
cout << "ThreadProc() is running!"<<endl;
Sleep(10);
}
//ExitThread(-1);
return 0;
}
int main()
{
//定义变量接受线程返回ID
unsigned long ulThreadId = 0;
//创建线程
HANDLE hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, &ulThreadId);
//关闭资源
CloseHandle(hThread);
//cout << ulThreadId <<endl;
getchar();
//system("pause");
return 0;
}
以上是关于VC++中通过CreateThread创建的线程,当线程入口函数执行完后,线程自己会关闭吗?的主要内容,如果未能解决你的问题,请参考以下文章