很多时候我就很疑惑,
①有没有必要dispose一个链接,还是只close掉就好,因为有时候我考虑到程序的性能,会应用连接池功能,好像默认也是打开的,新建一个链接还是费时,我就在想,当一个链接不用时就回归到链接池,当再用时就可以再次调用,不用再去从头开始,那么是不是只要close掉就行了,Dispose以后,链接是否就全从链接池中销毁,所以是否不需要Dispose呢?
②说到这一点,还有一个问题就是有人会说用using(SqlConnection con=new SqlConnection(constr)){}这种方式,不用想太多,一切都交给机器去处理,但是用了using以后,当一个链接用完或是在这个过程中出现错误的时候就会把链接dispose掉,所以在用链接池的情况下用using好吗?
请高手给予解答

解决方案 »

  1.   

    Dispose()比Close()在清理方面多做了一些事,但多做的这部分不是必须的,即使不马上做过一定时间也会由垃圾收集器自动回收。
    “Dispose以后,链接是否就全从链接池中销毁”——我认为不会,不然用了using就从连接池中销毁那连接池不就失去作用了?微软的设计者不会蠢到自己打自己耳光吧。
      

  2.   

    实现IDisposable接口的,优先使用Dispose()。Dispose后会将连接返回连接池。
      

  3.   

    找本书看看标准的 IDisposable 接口实现方式,以及 GarbageCollection 垃圾回收管理机制
      

  4.   

    前几天在<<ASPNET4 权威指南>>这本书里看到的,在程序池的章节里,说.close()和.dispose()的效果是一样的