(子)线程在正常return后,线程句柄是否还有效?
如题,我让已创建的80个子线程在检测到对应的外部值为-1时break跳出循环然后return 0;我很确定所有线程已经return了,并在主线程上Sleeo(1000)给了足够的时间让子线程执行完最后一次并return。
1.句柄值会自动变为无效值还是别的值?
2.我还需要CloseHandle将所有句柄关闭吗?
说明:
编译环境VS2013 ,编写MFC基本对话框
创建线程的方式是 Handle h=CreateThread(...);
在等待10s确定子线程结束后 关闭句柄
if (hPO[i] != INVALID_HANDLE_VALUE) {
CloseHandle(hPO[i]); //在这里出错①
hPO[i] = INVALID_HANDLE_VALUE;
}
①出错为An invalid handle was specified 。