C# Dispose Finalize
2024-10-19 11:41:29
比较值得参考的文档:http://www.jb51.net/article/37214.htm。
.NET 的内存管理过程:
托管堆假设内存无限大,线性连续分配内存;
实际内存不够使用时,遍历托管堆对资源,对过期资源进行标记;
移除被标记的资源后对托管堆进行压缩(重新从头开始排列),调整堆指针到空闲内存的开头;
另:
垃圾回收主要且微软推荐让CLR自己进行,不建议用 GC.Collect 指令;
要自己负责非托管资源的回收:
- Finalize:在 Finalize 内对非托管资源进行回收,以确保 CLR 在内存回收时调用 Finalize 回收非托管资源;
- Dispose:提供一个显式的接口,使用Dispose的主要动机在于与 using 的配合,编译器会自动为 using 生成 try.finally 块,编译器会为 using 中的变量转型成 IDispose 并在 finally 调用 Dispose;
最新文章
- C语言 · 未名湖边的烦恼
- jq attr()改变checkbox的checked无效!!!!
- Cinder 调试 - 无法挂载到虚拟机
- Java之POJO
- LA 3401 - Colored Cubes
- Visual Studio 2012 使用免费的Team Foundation Service
- 酷狗、QQ、天天动听——手机音乐播放器竞品对比
- Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法
- Python模块探秘之EasyGui
- NOIP-数字反转
- Essential Phone刷机教程
- Java数据解析---PULL
- Web应用程序使用说明
- 无返回值的异步方法能否不用await
- dom元素操作(动态事件绑定)
- 利用ST MCU内部基准参考电压监测电源电压及其它
- jQuery获取动态产生的html内标签或元素
- 关键词抽取:pagerank,textrank
- POJ 2301
- C语言-apache mod(模块开发)-采用VS2017开发实战(windows篇)
热门文章
- [C#] 常用工具类——文件操作类
- FontCombobox 和FontSizeCombobox
- [Webpack 2] Tree shaking with Webpack 2
- [TypeScript] Using Typings and Loading From node_modules
- LabVIEW设计模式系列——移位寄存器
- (转载)github简单使用教程
- android开发之自定义AutoCompleteTextView
- Android开发之TextView的下划线添加
- 可变字典 NSMutableDictionary
- java: Eclipse jsp tomcat 环境搭建(完整)