У меня есть пустая 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 opened) Form1.Initialize 41149443 (Form1 closed) Form1.Dispose 41149443
MSDN предлагает три способа реализации деструктора:
-
~ деструктор() 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?