已经释放了
为什么还是false
我也想知道

解决方案 »

  1.   

     同意楼上
    Conn.Dispose()语句已经释放了
      

  2.   

    那是啥意思?我就担心这个Conn对象会把内存耗尽而导致网站速度很慢
      

  3.   

    whycom 
    whycom 
    等 级:
     发表于:2007-10-17 19:03:526楼 得分:0 
    dispose 只是为了释放托管类中的非托管资源,并不是释放托管本身 
     
    那么Conn对象怎么样才能释放并销毁掉呢?由垃圾处理器来释放?
      

  4.   

    晕...那还要Dispose 干嘛?实在有点费解,Conn是不是托管资源呢?Conn.Dispose之后这个Conn对象还占不占内存?如果不占内存了,那Conn对象放在哪里啊?
      

  5.   

    你的Conn.Dispose()有点儿多余,没起什么作用,本来就是托管,你没必要去考虑其资源释放。至于Dispose()方法的作用,个人认为,在一些特殊情况下才能用到,一般情况没必要。反正我从来没用过。
      

  6.   

    close不就行了吗在finally里
    为什么非要释放呢
      

  7.   

    我是因为做过一个网站,速度特别慢,尤其是访问人数一多就很慢很慢,才怀疑是不是因为Conn对象太多没释放导致的?我现在理解是不是Dispose()之后,就会"唤醒"垃圾回收来回收对象,而当时Response(Conn==null)的结果因为垃圾回收还没启动或是我们不知道何时启动,才是False?
      

  8.   

    托管程序不需要管理资源释放。C#的析构函数也是摆设。为什么网站的Conn对像会太多?难道你设计的网站为每个Session建一个Conn?不是整个网站用一个Conn吗?ASP.NET里面用无连接的数据处理方法写程序速度会快很多.多用存储过程吧.
      

  9.   

    我现在理解是不是Dispose()之后,就会"唤醒"垃圾回收来回收对象
    -------
    要<"唤醒"垃圾回收来回收对象> 需要强制调用垃圾回收GC.Collect();
      

  10.   

    Dispose只是释放conn所引用的资源,如ConnectionString等等
    而conn还是指向堆中那块内存区的,只是那块区域没有内容而已,所以conn不为null
    等到出了这段程序以后,conn为null,垃圾回收器才会将conn所引用的那块内存回收
    个人理解
      

  11.   

    学到东西了,我可能做ASP太久了,变成了定性思维,写一个方法就在一个方法里建立一次并且DISPOSE一次CONN对象....至于怎么"一个网站里只用一个Conn",我还真不会?
      

  12.   

    我的理解是不是暂时没释放掉引用,也不知道G.C什么时候回收垃圾,所以立即结果是FALSE