📄 终止化操作.txt
字号:
任何封装了非托管资源的类型,要提供终止化操作必须实现Finalize方法。
C#中定义Finalize特殊语法。析构器.
~OSHandle()
{
CloseHandle(handle);
}
注意CLR/C#不支持确定析构,
Finalize只有在垃圾收集执行时被调用.
它不会在一个方法退出、或对象超出作用域被调用。
只有纯C++支持确定性析构。
设计一个类型尽可能避免使用Finalize方法。
我们不能控制Finalize方法的执行。对象可能一直占用着非托管的资源,直到垃圾收集出现。
调用Finalize方法的条件
.第0代对象充满。
.显示调用System.GC的静态方法Collect
.CLR 卸载应用程序域
.CLR 被关闭
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -