假设我这样建立线程
m_hHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, lpParameter, 0, &dwThreadID);请问该线程何时结束?
1.ThreadProc返回之时;
2.CloseHandle(m_hHandle)之后;
3.其他(请说明)。刚开始多线程的编程,请大家多多指教!
m_hHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, lpParameter, 0, &dwThreadID);请问该线程何时结束?
1.ThreadProc返回之时;
2.CloseHandle(m_hHandle)之后;
3.其他(请说明)。刚开始多线程的编程,请大家多多指教!
使用Thread
2.主程序运行完,线程也结束了
3.也可以强制让一个线程提前结束
CloseHandle(m_hHandle)不会结束线程
注意此方法可能造成死锁。需要处理消息的线程应该使用MsgWaitForMultipleObject或者其他的方法在等待时处理消息
他的作用仅仅是减少引用次数,当次数为0时,系统会把他结束掉