这是孙鑫视频教程15章“Chat”的一段代码在一个基本对话框工程的OnInitDialog()里面,插入了下面2行代码
HANDLE hThread=CreateThread(NULL,0,RecvProc,(LPVOID)pRecvParam,0,NULL);
CloseHandle(hThread);其中RecvProc函数的原型为
DWORD WINAPI CChatDlg::RecvProc(LPVOID lpParameter)
{
。
return 0;
}我想问一下,这个线程被创建以后立即执行,跟着就“CloseHandle(hThread)”。
为什么要关闭线程句柄?关闭线程句柄以后,不会影响线程的执行吗?
HANDLE hThread=CreateThread(NULL,0,RecvProc,(LPVOID)pRecvParam,0,NULL);
CloseHandle(hThread);其中RecvProc函数的原型为
DWORD WINAPI CChatDlg::RecvProc(LPVOID lpParameter)
{
。
return 0;
}我想问一下,这个线程被创建以后立即执行,跟着就“CloseHandle(hThread)”。
为什么要关闭线程句柄?关闭线程句柄以后,不会影响线程的执行吗?
总之一句话:
当需要关心返回值的时候就在线程结束时关闭句柄;
当不需要关心返回值的时候就在建立线程后马上关闭。