为了解决可能的内存泄漏问题,下面是它的历史背景:已经有了VB 6.0或VC 6.0文本编辑器控件,我们也必须在.NET中使用它。因此,在这个控件的组合中,我看到了一些Interop对这个文本编辑器的引用,然后我们创建了一个.NET自定义控件,并将该文本编辑器放入其中,并在需要它的项目中使用。互操作对象的内存管理
所以在Designer.cs文件我还是看到这样的变量:
private AxTextEditorLib.AxTextEditor ctlTEEditor;
,然后公共属性是这样的:
[Obsolete("This accessor method was added as a convenience for migrating to this component. Remove at earliest convenience.")]
[Browsable(false)]
public AxTextEditor TextEditor
{
get
{
return ctlTEEditor;
}
}
.NET设计本身已经产生,为了这个标准的Dispose方法如下:
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
但那够了吗?我需要更多的内存处理吗?我是否需要使用Marshal.ReleaseObjects或类似的东西?我是否需要手动释放事件处理程序?