zoukankan      html  css  js  c++  java
  • Finalize和Dispose的区别

    两者都是为了释放非托管资源,如IO句柄、数据库连接等。

    Finalize

    基类Object定义了受保护的方法Finalize,垃圾回收器判定对象是垃圾后,会调用对象的Finalize方法(注意:重写的都会调用),定义:在类名前添加~,如~ClassName(){};

    Finalize由GC隐式调用,它在垃圾对象回收完成后调用,使对象存活时间比正常长,应尽可能避免。

    Dispose

    类如果想允许使用者控制类所包装的本机资源的生存期,就必须实现IDisposable的Dispose方法,它是一种设计模式;

    可以显示调用;

    为了避免重复释放资源,在手动调用Dispose后,可以调用GC.SuppressFinalize禁止终结器的调用。

  • 相关阅读:
    thread同步测试
    thread互斥测试
    实验二测试
    第六章学习笔记
    opensslAPI
    第五章学习笔记
    stat命令的实现-mysate(必做)
    团队作业(三)
    第四章学习笔记
    学习笔记9
  • 原文地址:https://www.cnblogs.com/pangtouxiaoc/p/13183817.html
Copyright © 2011-2022 走看看