尽管进行了多次健全性检查,但在关闭时调用句柄错误

时间:2011-05-17 23:06:27

标签: c# winforms invoke

我正在使用这个小实用功能:

public static void Invoke(Control control, Action method)
{
    if (control.InvokeRequired)
    {
        if (control.IsDisposed || !control.IsHandleCreated || !control.Created)
            return;
        control.Invoke(method);
    }
    else
        method();
}

尽管进行了所有这些健全性检查,但当我关闭我的应用程序时,一个迷路调用总是会产生这个错误:

Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

这,尽管有一个检查,看看是否创建了句柄......我还能做什么?

1 个答案:

答案 0 :(得分:2)

阅读this thread,深入研究Invoke'ing。您遇到的问题几乎肯定是在if(...)返回之间消失的控件;和Invoke做的事情。