zoukankan      html  css  js  c++  java
  • Dispose() C# 优化内存

    1       public void Dispose()
    2         {
    3             ((IDisposable)_designer).Dispose();
    4         }
     1      #region IDisposable Support
     2         private bool disposedValue = false; // 要检测冗余调用
     3 
     4         protected virtual void Dispose(bool disposing)
     5         {
     6             if (!disposedValue)
     7             {
     8                 if (disposing)
     9                 {
    10                     System.Runtime.InteropServices.Marshal.ReleaseComObject(this);
    11                     //this.Dispose();
    12                     // TODO: 释放托管状态(托管对象)。
    13                 }
    14                 // Use the feature cursor as required
    15                 System.Runtime.InteropServices.Marshal.ReleaseComObject(this);
    16                 // TODO: 释放未托管的资源(未托管的对象)并在以下内容中替代终结器。
    17                 // TODO: 将大型字段设置为 null。
    18 
    19                 disposedValue = true;
    20             }
    21         }
    22 
    23         // TODO: 仅当以上 Dispose(bool disposing) 拥有用于释放未托管资源的代码时才替代终结器。
    24         ~ItemCollectionBase()
    25         {
    26             // 请勿更改此代码。将清理代码放入以上 Dispose(bool disposing) 中。
    27             Dispose(false);
    28         }
    29 
    30         // 添加此代码以正确实现可处置模式。
    31         void IDisposable.Dispose()
    32         {
    33             // 请勿更改此代码。将清理代码放入以上 Dispose(bool disposing) 中。
    34             Dispose(true);
    35             // TODO: 如果在以上内容中替代了终结器,则取消注释以下行。
    36             GC.SuppressFinalize(this);
    37         }
    38         #endregion
       finally
                {
                    if (_graphics != null)
                        _graphics.Dispose();
                    if (_metaFile != null)
                        _metaFile.Dispose();
                    if (_stream != null)
                       _stream.Close();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_graphics);//_graphics
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_metaFile);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(_stream);
                }

      

       ~ChatRichTextBox()
            {
                // 请勿更改此代码。将清理代码放入以上 Dispose(bool disposing) 中。
                if (!IsDisposed)
                    this.Dispose();
                Dispose(true);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(this);//
                _oleObjectList = null;// ();
    
    
            }
    1 GC.Collect();
  • 相关阅读:
    关于url路径的定义方式
    script标签的位置
    jQuery中ready与load事件的区别
    Python中cv2库和matplotlib库色彩空间排布不一致
    OpenCV for Python 学习笔记 三
    OpenCV for Python 学习笔记 二
    OpenCV for Python 学习笔记 一
    CentOS7配置opencv for python && eclipse c/c++[更新]
    <转>关于 error LNK2019:无法解析的外部符号 ,该符号在函数**中被引用的思考
    OpenCV load 运行出错 cv::Exception 出错
  • 原文地址:https://www.cnblogs.com/endv/p/6170685.html
Copyright © 2011-2022 走看看