2012-01-25 40 views
1

CreateThread返回HANDLE对象需要由CloseHandleCreateThread的句柄泄漏

文档被关闭指出The thread object remains in the system until the thread has terminated and all handles to it have been closed through a call to CloseHandle.

我的问题是如果返回变量不使用会发生什么。它等于不关闭返回的句柄,并因为这与处理泄漏?这是对的吗?

+0

避免希望仙女照顾它。如果一个winapi函数返回一个句柄,那么释放它就是你的工作。当然,你总是要检查通话是否失败。 –

+1

除非您需要等待线程在稍后阶段退出,否则最简单的方法是在调用CreateThread之后调用CloseHandle(hThread),然后您不必再担心它。 – BrendanMcK

回答

3

它等于不关闭返回的句柄,因为这与处理泄漏?这是对的吗?

是的,您将泄露操作系统资源,这类似于当您有内存泄漏时泄漏内存。

参考:
MSDN Documentation

关闭一个线程句柄不终止关联的线程或删除线程对象。关闭进程句柄不会终止关联的进程或删除进程对象。要删除线程对象,您必须终止线程,然后关闭线程的所有句柄。