如果不关闭线程句柄而直接删除,会怎么样?会内存泄露吗?

时间:2023-01-01 19:02:28
我的 CWinThread 型的对象是由 AfxBeginThread 函数产生的。《MFC windows程序设计》说 CWinThread 的析构函数会执行 ::CloseHandle 来关闭线程句柄。
我挺不理解的,关闭是什么意思。如果不关闭而直接删除会怎么样。为什么要关闭一下

4 个解决方案

#1


直接删除。这个可能性不是很大。删除的后果楼主还是不可能预料的

#2


系统句柄是有限的,如果你不关闭的话,只有等到整个进程结束时系统才能释放线程句柄,如果你要反复创建并结束线程,最好要记得关闭句柄。

#3


句柄泄露而非内存泄露.
句柄泄露是打开了句柄完了后不closehandle的结果.

#4


不需要的话,就可以先关闭,不关闭则泄露

#1


直接删除。这个可能性不是很大。删除的后果楼主还是不可能预料的

#2


系统句柄是有限的,如果你不关闭的话,只有等到整个进程结束时系统才能释放线程句柄,如果你要反复创建并结束线程,最好要记得关闭句柄。

#3


句柄泄露而非内存泄露.
句柄泄露是打开了句柄完了后不closehandle的结果.

#4


不需要的话,就可以先关闭,不关闭则泄露