zoukankan      html  css  js  c++  java
  • C# 关于类资源的释放

    我们自定义的类并不像窗体类那样当窗体关闭时自动调用释放函数(实际上是重载基类函数)如下:
           /// <summary>
            /// 清理所有正在使用的资源。
            /// </summary>
            /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    因为我们定义类的在窗体实例化时分配空间但当该窗体关闭时并没有释放该类,如果一个时时操作的C/S结构的系统.很容易使内存用完而死机.所以对类要做接口.如下:
    public  class LinkDataBase:IDisposable
        {
          //析构函数
       ~LinkDataBase()
           {
               Dispose(true);
           }
      public void Dispose()
           {
               Dispose(true);
              
           }
    /// <summary>
           /// 清理所有正在使用的资源。
           /// </summary>
           /// <param name="isDisposing">如果应释放托管资源,为 true;否则为 false</param>
           protected virtual void Dispose(bool isDisposing)
           {
               // Don't dispose more than one

               if (_alreadyDisposed)
                   return;
               if (isDisposing)
               {
                   GC.SuppressFinalize(this);
               }

               // TODO: free unmanaged resources here
               // Set disposed flag
               _alreadyDisposed = true;
     }
    这样当我们关闭实例化该的窗体时调用一下就行了,如下:
     LinkDataBase link = new LinkDataBase();
      private void configure_FormClosed(object sender, FormClosedEventArgs e)
            {
            l ink.Dispose();

            }

  • 相关阅读:
    vue中的 computed 和 watch 的区别
    mysql8.0 初始化数据库及表名大小写问题
    sql server alwayson 调整数据文件路径
    zabbix 自定义监控 SQL Server
    mysql 创建用户及授权
    mysql 设置从库只读模式
    mysql8.0 主从复制安装及配置
    centos8.0安装mysql8.0
    centos8替换阿里数据源
    npm publish 报错 【you or one of your dependencies are requesting a package version that is forbidden by your security policy】
  • 原文地址:https://www.cnblogs.com/Fooo/p/1363649.html
Copyright © 2011-2022 走看看