• 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();
  • 相关阅读:
    The connection to adb is down, and a severe error has occured
    android 补间动画
    Android Geocoder(位置解析)
    Android服务之AIDL
    SQL语言学习-数据操纵语言
    SQL语言学习-数据定义语言
    asp.net MVC 验证注解
    django之用户表的继承
    django之ModelForm组件
    django之 基于queryset和双下划线的跨表查询
  • 原文地址:https://www.cnblogs.com/endv/p/6170685.html
Copyright © 2020-2023  润新知