zoukankan      html  css  js  c++  java
  • using 把对象给dispose()释放了

    一直见使用using连数据库.没深刻体悟其释放,销毁对象的功能

    如下:model1 是从字典中获取的对象

     using (var model = model1)
    {
    }
     public static Dictionary<string, IfcStore> ModelDic = new Dictionary<string, IfcStore>();
     if (re== "ok"&& ModelDic.ContainsKey(modelname))
                {
                    return ModelDic[modelname];
                    //  IfcStore ifc;
                    // ModelDic.TryGetValue(modelname,out ifc);
                    //   return ifc;
                }

    放入model 用了一次后,在此web请求.发现是一个空壳.里边没数据.调试了下,确定字典取值不存在问题,字典像个容器,忽然想到可能是using给我dispose()释放掉了.

    附资料:

    经常使用using的地方       

           using(SqlConnection con=new SplConnection(connString))
             {
              using(SqlCommand cmd=new SqlCommand(cmdTxt,con))  

    using的原理

       为什么出了using所在的{},会自动回收对象。

       原因是当我们将要出{},系统自动调用了Dispose()方法。

       而在DISpose方法中是这么实现的


     using语句的作用

          1.作为关键字,using可以导入命名空间.

          2.作为C#语句,using可以释放对象占用的内存资源.

    using语句的本质

       既然using可以释放对象,那么是不是在所有的对象前都可以用using来限制?  <不是> 

          原因如下:

             1.using可以主动释放的对象都需要实现IDisable借口.

             2.即使都实现了IDisable接口,也没有必要全部使用using.我们只对那些对系统性能有重要影响的对象进行using限定,而其他的对象可以交给垃圾回收器处理. 
      

    哪些对象才可以使用Using回收!

         必须实现了IDisposable 接口的类型才可以使用using回收!

    using回收的是托管还是非托管资源?

        解析:什么是托管:所有的C#代码都是被CLR监管,

         结论是using回收的是 非托管资源!

    Using释放的是托管资源还是非托管资源?

        解析:非托管,C#应用托管到.NET Framework.但是他可以释放非托管资源。


    Dispose方法会自动调用Close()

         要想让一个类型可以通过using管理,该类型或者父类必须实现了IDisposable接口。

    using(SqlConnection con=new SqlConnection)

    {

       //本质上自动调用了Dispose方法

    }

     close()和dispose()区别?

         解析:close()只是关闭连接,但是通道没有销毁,dispose()不仅把连接给关闭了,而且把通道也给销毁了。

    技术交流qq群:143280841
  • 相关阅读:
    jsp mysql 配置线程池
    服务端 模拟 检测 攻击。。乱写
    硕思闪客精灵 7.2 破解版
    unity UnityAwe 插件
    smartfoxserver 2x 解决 Math NAN
    unity 断点下载
    java 监听文件目录修改
    wind7 64 setup appjs
    sfs2x 修改jvm 内存
    unity ngui 解决图层问题
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/15323369.html
Copyright © 2011-2022 走看看