C#如何正确的释放资源
此标题可以为“.NET 框架如何正确的释放资源”。参考:https://www.cnblogs.com/fdyang/p/3456258.html
托管的内存资源,这是不需要我们操心的,系统已经为我们进行管理了。
对于非托管的资源,这里再重申一下,就是Stream,数据库的连接,GDI+的相关对象,还有Com对象等等这些操作系统资源,需要我们手动去释放。
如何去释放,应该把这些操作放到哪里比较好呢。.Net提供了三种方法,也是最常见的三种,大致如下:
1. 析构函数;
2. 继承IDisposable接口,实现Dispose方法;
3. 提供Close方法。
析构函数 |
Dispose方法 |
Close方法 |
|
意义 |
销毁对象 |
销毁对象 |
关闭对象资源 |
调用方式 |
不能被显示调用,会被GC调用 |
需要显示调用 或者通过using语句 |
需要显示调用 |
调用时机 |
不确定 |
确定,在显示调用或者离开using程序块 |
确定,在显示调用时
|
C#如何正确的释放资源相关推荐
- HttpClient的释放资源到底在释放什么?如何正确的释放资源?
ApacheHttpClient github地址:https://github.com/apache/httpcomponents-client/tree/4.5.x ApacheHttpClien ...
- HttpClient 如何正确的释放资源
HttpClient 需要关闭的资源 使用HttpClient 访问会涉及到三个层次的资源, 从上往下依次是: HttpClient 类型的对象.这是Http 呼叫的客户端. Http的请求的对象,一 ...
- .Net操作Excel后彻底释放资源
.Net操作Excel后彻底释放资源 和同事在工作中遇到的: 在.net中,有时候需要对Excel文档进行操作,但通常我们并不能真正的正确释放Excel占用的资源. 我们在代码中通常会这样操作Exce ...
- Servlet监听器Listener
2019独角兽企业重金招聘Python工程师标准>>> 0.Listener是Servlet的一个功能组件: (1)用于application,session,request三个对象 ...
- Listener 监听器
Listener 监听器 前言:之前写了一篇关于Filter的文章:http://tianweili.github.io/blog/2015/01/26/java-filter/,现在再来一篇List ...
- pthread_cleanup_push与pthread_cleanup_pop的目的、作用
首先你必须知道pthread_cleanup_push与pthread_cleanup_pop的目的(作用)是什么. 比如thread1:执行 pthread_mutex_lock(&mute ...
- BOOST内存管理(二) --- boost::pool
Boost库的pool提供了一个内存池分配器,用于管理在一个独立的.大的分配空间里的动态内存分配.Boost库的pool主要适用于快速分配同样大小的内存块,尤其是反复分配和释放同样大小的内存块的情况. ...
- C++ 智能指针 :内存泄漏、 RAII、智能指针、auto_ptr、unique_ptr、shared_ptr、weak_ptr、定制删除器deleter
文章目录 内存泄漏 什么是内存泄漏 内存泄漏的危害: 如何避免内存泄漏 RAII 智能指针 auto_ptr unique_ptr shared_ptr 循环引用问题 weak_ptr 定制删除器 内 ...
- C# GC 垃圾回收机制原理
转载参照自以下文章: http://www.cnblogs.com/fdyang/p/3456258.html (c#) 销毁资源和释放内存 https://www.cnblogs.com/Jessy ...
最新文章
- 0607am抽象类接口析构方法tostring小知识点
- Win10如何打开软键盘?
- gtp6 linux 启动_Win10更新后导致双系统(LinuxWindows)开机引导失败出现grub rescue的修复办法...
- php mysql生日提醒_基于AIML的PHP聊天机器人
- Sass函数-数字函数-floor()函数
- 坑爹的UICollectionView
- linux mysql -d_在linux中无法启动mysqld 服务
- c语言1234为什么不是常量,C语言学习1
- mysql中join各种形式大全及操作和图片
- D-Link service.cgi远程命令执行漏洞复现
- matlab保存图片saveas,matlab saveas 图片
- 一文读懂增强现实(AR)技术
- 当代最值得收藏的画家作品_当代最具潜力和收藏价值的十大画家
- 入行物联网8年后的自白,机智云系“物联网创业者”的希望承载者
- getaddrinfo的用法详解 .
- 您玩儿转手机通讯录了吗?
- 【LAB1-Ruijie】验证分别在console口和vty接口下的login、login local、no login的区别
- 黑莓开发之环境的搭建
- java的rsa加密算法_用java编程实现RSA加密算法
- 照片如何加滤镜?一步一步教会你给图片加上滤镜
热门文章
- 阿里云服务器升级node版本
- 大数据处理 - Bitmap Bloom Filter
- 程序员的乐趣,那些可爱的 Linux 命令
- mysql gbk编码 字节数,mysql中utf-8编码数据库转换成GBK编码的问题
- SuperOneClick一键Root工具使用方法
- python俄罗斯方块落地展示_Python 竟能开发如此精美的俄罗斯方块!
- 2009年国庆再回桂林(有图片)
- 【Java刷题笔记】牛客网Java入门 1~4
- JZOJ 3809 【NOIP2014模拟8.25】设备塔
- 导出功能: 导出为excel文档,后端做导出处理,js代码发送接口直接下载