zoukankan      html  css  js  c++  java
  • 关于Dispose()的问题

            当我怀着美好的心情翻阅dotNET文档的时候,Dispose令人厌恶的进入了我的视线。
            首先,我意识到文档里面所说的,某些对象必须手工调用Dispose,并不是一句玩笑话。文档里面提到的这个要求是严肃的认真的。比如SqlConnection,虽然你不手工调用Dispose或者Close在某些情况下也可以,因为系统会在某些情况下自动调用那些;但是在另外一些情况下,不调用Dispose或者Close将会导致连接池迅速被消耗干净。
            其次,Dispose让我非常沮丧的感觉到,这并不比C++奇妙的heap内存指针更容易控制。刚才我们已经确定,Dispose(或者类似的替代方法)对于某些对象是必须手工调用的,否则就容易出问题。OK,接下我发觉,如果我们在某个地方忘了释放,我们几乎无法确认到底哪个该死的地方忘了释放;而那个遗忘的地方,可能恰恰是导致资源耗尽的地方;而且直到资源耗尽之前,你几乎不可能发现这个问题;而且资源耗尽的时候,你并没有办法察觉资源是何时由谁耗尽的。如果在一个大的项目模块里面发现了这样一个问题,肯定会有人要发疯;因此有人说dotNET并不适合大项目,多少是有点道理的。相比之下,C++的heap内存指针虽然也是需要释放,但是我们至少可以很容易的检测出内存泄漏来。

  • 相关阅读:
    jquery封装的时间轴
    openlayers实现多图显示
    wms常用操作
    教你如何拔取百度地图POI兴趣点
    北京市地铁线路及站点数据
    Arcgis for js实现北京地铁的展示
    Openlayers 2.X加载高德地图
    Arcgis for js加载百度地图
    常用公共服务接口与java调用实现
    Openlayers 2.X加载天地图
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330495.html
Copyright © 2011-2022 走看看