日期:2009-07-28  浏览次数:20426 次

l         Finalize

在上一篇文章中我分配使用资源一共五步,我们已经知道了GC是如何释放无用对象的内存了。但是它怎么实现第四步清空资源使用状态、释放利用到的一些非内存的系统资源呢?.NET引入了Finalize来完成这个任务。

GC在无用单元回收时一旦发现某个对象有Finalize方法,便调用它。所以我们的Finalize方法一定要尽量少做事情,以提高内存回收的速度。另外,在Finalize方法中不要有任何的线程同步等操作,以防止GC线程被挂起。

我们可以用两种方法来写自己的Finalize方法。一种就是显示的实现,如下面的代码:

代码1

public class SomeClass

{

   public SomeClass()

   {

   }

 

   protected override void Finalize()

   {

      Console.WriteLine(“Finalizing…”);

   }

}

使用这种方法时要注意一点,.NET不会帮你做调用基类的Finalize方法。如果需要调用基类的Finalize方法,需要显示的调用。如下面代码:

友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:905人  网站在19时12分11秒内访问总人数:209309人 当前 15.42%  粤ICP备18100884号-2