zoukankan      html  css  js  c++  java
  • 托管资源和非托管资源

         托管资源一般是指被CLR控制的内存资源,这些资源的管理可以由CLR来控制,例如程序中分配的对象,作用域内的变量等等。而非托管资源是CLR不能控制或者管理的部分,这些资源很多,例如文件流,数据库的连接,系统的窗口句柄,打印机资源等。这些资源一般情况下不存在与Heap中。

         CLR的GC功能只能释放托管资源,而对非托管资源,它不知道如何去释放它。这样就会出现当资源用尽时不能提供资源能够提供的服务,windows的运行速度就会变慢。所以,当我们在类中封装了对非托管资源的操作时,我们就需要显示或者隐式地释放这些资源。这里就分别会用到Finalize和Dispose方法。Finalize一般用于基类不带close方法或者不带Dispose显示方法的类。也就是说,在Finalize过程中我们需要隐式地去实现非托管资源的示范,然后系统会在Finalize过程完成后,自己去释放托管资源。如果要实现Dispose方法,可以通过实现IDisposable接口,这样用户在使用这个类的同时就可以显示地执行Dispose方法,释放资源。

  • 相关阅读:
    了解jQuery
    了解JavaScript
    了解DOM
    了解CSS
    UICollectionViewCell点击高亮效果(附带效果GIF)
    产品迭代缓慢的原因
    了解Web的相关知识
    HTML常用标签
    HTML常用标签效果展示
    了解数据产品经理
  • 原文地址:https://www.cnblogs.com/xuezhi/p/2804304.html
Copyright © 2011-2022 走看看