zoukankan      html  css  js  c++  java
  • 最佳策略

    大部分内容是看书所做笔记,放上来只为温习。

    最佳的资源清理策略,应该是同时实现 Finalize 方式和 Dispose方式。一方面,Dispose方法可以克服Finalize 方法在性能上的诸多弊端;另一方面,Finalize 方法又能够确保没有显式调用 Dispose 方法时,也自行回收使用的所有资源。事实上,.NET 框架类库的很多类型正是同时实现了这两种方式,例如FileStream等。因此,任何重写了 Finalize 方法的类型都应实现 Dispose 方法,来实现更加灵活的资源清理控制。

    using语句简化了资源清理代码实现,并且能够确保 Dispose 方法得到调用,因此值得推荐。

    凡是实现了Dispose模式的类型,均可以 using语句来定义其引用范围

    {

    规则所在

    对于Finalize 方法和 Dispose 方法,有如下的规则,留作参考:

    对于非托管资源的清理,FinalizeGC自行调用,而Dispose由开发者强制执行调用。

    尽量避免使用Finalize方式来清理资源,必须实现Finalize时,也应一并实现 Dispose方法,来提供显式调用的控制权限。

    通过GC. SuppressFinalize可以免除终结。

    垃圾回收时,执行终结器的准确时间是不确定的,除非显式的调用Dispose或者 Close方法。

    强烈建议不要重写Finalize方法,同时强烈建议在任何有非托管资源访问的类中同时实现终止化操作和Dispose模式。

    l  Finalize方法和Dispose方法,只能清理非托管资源,释放内存的工作仍由GC负责。

    对象使用完毕应该立即释放其资源,最好显式调用 Dispose方法来实现

    }

  • 相关阅读:
    ZooKeeper 授权访问
    jQuery代码优化:事件委托篇
    设计一个学生作业完成情况的管理程序
    UVa 10192 Vacation(LCS水题)
    BBS快照源代码代写
    ftp服务器系统编程编码程序下载代写代开发
    文件夹病毒专杀工具
    C#生成软件注册码
    《恐怖丛林生存》肉搏攻略,解开星星系统之谜
    《恐怖丛林生存》各种bug 各种解密
  • 原文地址:https://www.cnblogs.com/jiebian/p/3409751.html
Copyright © 2011-2022 走看看