我有一個需要執行特定操作的類。根據輸入數據,可能會顯示一些對話框。這些對話框需要與父窗口的句柄調用,使他們正確居中等父窗體最終收是否將窗口句柄(IntPtr)保存在一個變量中會阻止窗體正確處理?
private IntPtr _parentWindow;
...
System.Windows.Forms.MessageBox.Show(System.Windows.Forms.Control.FromHandle(_parentWindow), "message");
後,我的類的實例仍然存在,與_parentWindow仍然具有價值分配。
這是安全嗎?或者,由於_parentWindow被填充句柄,GC沒有完全處理表單?
GC從不直接處理任何對象。 Handle不是引用,因此Form在顯式或隱式調用其Dispose方法時將被丟棄。 –