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();