如何确定我的表单窗口是否仍然有效



我有一个窗口,该窗口从工作线程接收异步事件。有时,这些事件在关闭窗口后出现,当我致电Invoke((处理事件时,我会得到例外。

如何测试以确保窗口仍然不错。或导致所有事件在关闭生命周期中的某个地方进行处理?

谢谢-Dave

您可以在调用调用之前检查IsHandleCreated,以确保创建表单并且不会被破坏:

if (this.IsHandleCreated)
{
    //this.Invoke ...
}

属性将返回false,如果未创建表单句柄或关闭表单后它已销毁。它还可以防止在显示表单之前和创建句柄之前调用调用的错误。

如果出于任何原因您只是关心关闭表格,则可以检查IsDisposed属性。

最新更新