C# IDisposable接口 与析构函数

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

1.非托管资源怎么回收

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

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

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

IDisposable 接口就是为了解决这个

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

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

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

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

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

相关推荐
仟濹2 分钟前
【Java基础】多态 | 打卡day2
java·开发语言
孞㐑¥3 分钟前
算法——BFS
开发语言·c++·经验分享·笔记·算法
Re.不晚3 分钟前
JAVA进阶之路——无奖问答挑战2
java·开发语言
bugcome_com4 分钟前
深入了解 C# 编程环境及其开发工具
c#
八零后琐话6 分钟前
干货:程序员必备性能分析工具——Arthas火焰图
开发语言·python
3GPP仿真实验室8 分钟前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
知南x25 分钟前
【Ascend C系列课程(高级)】(1) 算子调试+调优
c语言·开发语言
忆~遂愿28 分钟前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
Ro Jace1 小时前
计算机专业基础教材
java·开发语言
代码游侠1 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法