我有一个带有析构函数的空白Winform
public partial class Form1 : Form
{
public Form1()
{
System.Diagnostics.Trace.WriteLine("Form1.Initialize " + this.GetHashCode().ToString());
InitializeComponent();
}
~Form1()
{
System.Diagnostics.Trace.WriteLine("Form1.Dispose " + this.GetHashCode().ToString());
}
}
当表单被销毁时,我希望它能写入输出窗口:
(Form1打开) Form1.Initialize 41149443 (Form1关闭) Form1.Dispose 41149443
MSDN建议三种实现析构函数的方式:
~Destructor() http://msdn.microsoft.com/en-us/library/66x5fx1b.aspx
IDisposable http://msdn.microsoft.com/en-us/library/system.idisposable.aspx
SafeHandle模式 http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.safehandle.aspx
然而,以上三种方式均无法将“Form1.Dispose 41149443”写入输出窗口。因此,我无法确定该表单是否已被销毁。有什么建议吗?
由于垃圾收集器的不确定性,我是否应该放弃实现这一点?
还有其他方法可以知道Form1是否已被垃圾回收?