我有一个需要执行特定操作的类。根据输入数据,可能会显示一些对话框。这些对话框需要使用父窗口的句柄来调用,以便它们正确居中等。
private IntPtr _parentWindow;
...
System.Windows.Forms.MessageBox.Show(System.Windows.Forms.Control.FromHandle(_parentWindow), "message");
最终关闭父窗体后,我的类的实例仍然存在,_parentWindow 仍然分配了一个值。
这样做安全吗?或者 GC 会不会因为 _parentWindow 被句柄填充而完全处理表单?