gpt4 book ai didi

使用HeapDestroy时需要CloseHandle吗?

转载 作者:行者123 更新时间:2023-11-30 14:47:44 24 4
gpt4 key购买 nike

我在堆上分配了一个句柄数组,然后每个句柄与一个线程关联。完成工作后,我是否必须在调用 HeapDestroy() 之前对每个对象调用 CloseHandle() ?或者后一个调用是否会使第一个调用变得无用?

最佳答案

用完后一定要关闭 handle - 这是一个很好的做法。 Windows 内核具有跟踪分配的句柄以及它们分配给谁的表,因此记住关闭它们将符合您的最佳利益。

句柄泄漏也是一种存在的情况,当调用者请求句柄但没有关闭它时,它们会在一段时间内堆积起来。

您有时还可能因不关闭句柄而导致其他问题(例如,如果您打开了文件的句柄并拒绝共享,但当您不再需要打开的句柄时又保持该句柄打开,则会发生共享冲突)。

准确地说,句柄是假的 - Windows 内核会转换它们,因为它依赖于一个内部的、未记录且未导出的表,该表存储指向链接到该假句柄的内核对象的真实指针地址。

关于使用HeapDestroy时需要CloseHandle吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com