C# IDisposable接口 与析构函数

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

1.非托管资源怎么回收

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

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

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

IDisposable 接口就是为了解决这个

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

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

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

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

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

相关推荐
冰暮流星10 小时前
javascript之String方法介绍
开发语言·javascript·ecmascript
吉普赛的歌11 小时前
YARP负载均衡配置了多个相同接口导致的报错
c#·yarp
nianniannnn11 小时前
Qt QMessageBox知识点
开发语言·数据库·qt
故乡de云11 小时前
AWS 添加付款方式失败排查清单:卡片、银行风控与账号状态逐项定位
开发语言·php
J_yyy11 小时前
【Qt核心组件类框架】
开发语言·qt
运维行者_12 小时前
如何查看每个IP的带宽使用情况?NetFlow 技术实战指南
开发语言·网络·分布式·后端·架构·带宽
天天进步201512 小时前
Python全栈项目--基于深度学习的图像超分辨率系统
开发语言·python·深度学习
张人玉12 小时前
C# WinForms——工厂管理系统(C# WinForms)
数据库·sqlite·c#·winform
blevoice12 小时前
抖抖燃脂机单 AC6966B 主控调试踩坑:Type-C 整机供电喇叭无声排障
c语言·开发语言·单片机
小小晓.12 小时前
C++小白记:C风格字符串和数组用法
c语言·开发语言·c++