C# IDisposable接口 与析构函数

GC 自动回收 托管资源 但是因为标记并清除 方式 以及 垃圾对象的1代2代,并不是及时清理,那么问题来了

1.非托管资源怎么回收

2.托管资源怎么立马回收

非托管资源可以使用 析构函数 ~class 这样 GC回收的时候会去识别析构来进行一个非托管资源的释放 注意 因为还是GC 处理 还是不是及时 处理的 有GC的机制来决定

那么要立即回收 托管资源 和非托管资源 怎么办?

IDisposable 接口就是为了解决这个

在你需要手动控制回收的资源 类 继承IDisposable

接口有个方法 dispose 在你释放是直接 Class对象.dispose()

还有一种便捷写法 就是 在 代码段 外层 使用using{} 达到同样效果

那什么业务情况才会需要手动释放资源呢?

socket 连接 断开等 句柄资源 数据库连接资源 客户端连接断开日志资源清空等

相关推荐
Можно17 小时前
深入理解 JavaScript 函数:分类、特性与实战应用
开发语言·javascript
淼淼76317 小时前
工厂方法模式
开发语言·c++·windows·qt·工厂方法模式
Hui Baby17 小时前
全局事务入口感知子事务方法-TCC
java·开发语言·数据库
laozhoy117 小时前
深入理解Go语言errors.As方法:灵活的错误类型识别
开发语言·后端·golang
周杰伦_Jay17 小时前
【Go 语言】核心特性、基础语法及面试题
开发语言·后端·golang
周杰伦_Jay17 小时前
【Python开发面试题及答案】核心考点+原理解析+实战场景
开发语言·python
前端不太难17 小时前
RN Hooks 设计规范与反模式清单
开发语言·php·设计规范
HyperAI超神经17 小时前
【vLLM 学习】vLLM TPU 分析
开发语言·人工智能·python·学习·大语言模型·vllm·gpu编程
ForteScarlet18 小时前
如何解决 Kotlin/Native 在 Windows 下 main 函数的 args 乱码?
开发语言·windows·kotlin
月殇_木言18 小时前
应用层自定义协议与序列化
开发语言