C# IDisposable接口 与析构函数

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

1.非托管资源怎么回收

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

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

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

IDisposable 接口就是为了解决这个

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

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

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

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

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

相关推荐
fie88893 分钟前
MATLAB中LASSO方法的特征矩阵优化与特征选择实现
开发语言·matlab·矩阵
LilySesy8 分钟前
【SAP-MOM项目】二、接口对接(中)
开发语言·python·pandas·restful·sap·abap
零度@10 分钟前
专为 Java 开发者 整理的《Python编程:从入门到实践》前8章核心内容
java·开发语言·windows·python
nbsaas-boot15 分钟前
架构设计怎么做:一套可复用、可落地的方法论
java·开发语言·微服务
骆驼爱记录15 分钟前
Word表格题注自动设置全攻略
开发语言·c#·自动化·word·excel·wps·新人首发
wbs_scy17 分钟前
C++:智能指针完全指南(原理、用法与避坑实战,从 RAII 到循环引用)
开发语言·c++·算法
无人装备硬件开发爱好者19 分钟前
Python + Blender 5.0 几何节点全栈实战教程1
开发语言·python·blender
u01092727119 分钟前
C++中的对象池模式
开发语言·c++·算法
武超杰20 分钟前
深入理解JDBC:Java数据库连接的核心技术与实践
java·开发语言·数据库·jdbc
80530单词突击赢23 分钟前
MPPI算法:ROS下的智能控制实战
开发语言·python