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

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

    Finalize

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

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

    Dispose

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

    可以显示调用;

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

  • 相关阅读:
    隐语义模型LFM
    基于内容的推荐、协同过滤
    评定标准
    函数式模型示例
    函数式模型概述
    序贯模型
    seq2seq
    链队列
    顺序栈
    线性表的静态链表存储结构
  • 原文地址:https://www.cnblogs.com/pangtouxiaoc/p/13183817.html
Copyright © 2011-2022 走看看