您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

到底什么是非托管资源?

到底什么是非托管资源?

托管资源基本上是指由垃圾回收器管理的“托管内存”。当您不再对托管对象(使用托管内存)进行任何引用时,垃圾收集器将(最终)为您释放该内存。

那么,非托管资源就是垃圾收集器所不知道的一切。例如:

通常, 丢失对管理它们的对象的所有引用 之前, 您要释放这些非托管资源。您可以通过调用Dispose该对象或(使用C#)使用using将为Dispose您处理调用的语句来执行此操作。

如果您Dispose正确地忽略了非托管资源,那么当包含该资源的对象被垃圾回收时,垃圾回收器将最终为您处理(这是“完成”)。但是,由于垃圾收集器不了解非托管资源,因此无法判断释放它们的严重程度- 因此,程序的性能可能很差或完全耗尽了资源。

如果您自己实现一个处理非托管资源的类,则由您自己实现DisposeFinalize正确执行。

其他 2022/1/1 18:17:07 有529人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶