首页 > 解决方案 > 是否有必要关闭/处置 SafeHandles

问题描述

我在我的代码中使用 SafeHandles 并注意到它们有 Close 和 Dispose 方法。

这让我想知道 SafeHandles 是否由垃圾收集器处理并在使用后被丢弃。

例如,如果我有这样的句柄,我是否需要在使用完之后调用 .Dispose 或 .Close 方法。

var process Process.GetProcessesByName("notepad")[0];

var handle = process.SafeHandle;

标签: c#

解决方案


文档

在释放对 SafeHandle 对象的最后引用之前,始终调用 Close 或 Dispose 方法。否则,在垃圾收集器调用 SafeHandle 对象的 Finalize 方法之前,它正在使用的资源不会被释放。


推荐阅读