作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在堆上分配了一个句柄数组,然后每个句柄与一个线程关联。完成工作后,我是否必须在调用 HeapDestroy() 之前对每个对象调用 CloseHandle() ?或者后一个调用是否会使第一个调用变得无用?
最佳答案
用完后一定要关闭 handle - 这是一个很好的做法。 Windows 内核具有跟踪分配的句柄以及它们分配给谁的表,因此记住关闭它们将符合您的最佳利益。
句柄泄漏也是一种存在的情况,当调用者请求句柄但没有关闭它时,它们会在一段时间内堆积起来。
您有时还可能因不关闭句柄而导致其他问题(例如,如果您打开了文件的句柄并拒绝共享,但当您不再需要打开的句柄时又保持该句柄打开,则会发生共享冲突)。
准确地说,句柄是假的 - Windows 内核会转换它们,因为它依赖于一个内部的、未记录且未导出的表,该表存储指向链接到该假句柄的内核对象的真实指针地址。
关于使用HeapDestroy时需要CloseHandle吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972271/
我是一名优秀的程序员,十分优秀!