Winforms AsyncCallback引发异常

Winforms AsyncCallback引发异常,winforms,exception,callback,Winforms,Exception,Callback,在Winform中,我得到一个异常:“在异步回调期间,在创建窗口句柄之前,不能对控件调用Invoke或BeginInvoke” 该应用程序在其他计算机上正常工作。我想知道是否可能是计算机或网络设置导致了此异常。回调是跨域回调,但是所有数据都在Winform中接收和显示,然后发生异常 该异常是一个致命异常,Windows消息“App..已停止工作”出现 编辑1: public void OpenFormCallback(IAsyncResult ar) { // 'this' is a W

在Winform中,我得到一个异常:“在异步回调期间,在创建窗口句柄之前,不能对控件调用Invoke或BeginInvoke”

该应用程序在其他计算机上正常工作。我想知道是否可能是计算机或网络设置导致了此异常。回调是跨域回调,但是所有数据都在Winform中接收和显示,然后发生异常

该异常是一个致命异常,Windows消息“App..已停止工作”出现

编辑1:

public void OpenFormCallback(IAsyncResult ar)
{
    // 'this' is a Winform  
    this.BeginInvoke(new DelegateVoid(SetDataSource));
}
正常情况下,它可以工作,但在例外情况下,存在一个非常快速的网络连接,这可能是尚未创建句柄的原因。我才意识到

我是否应该尝试:

public void OpenFormCallback(IAsyncResult ar)
    {
        // 'this' is a Winform  
        while (!this.IsHandleCreated) { }
        this.BeginInvoke(new DelegateVoid(SetDataSource));
    }
??冒着永恒循环的风险

编辑2:我试过:

public void OpenFormCallback(IAsyncResult ar)
    {
        // 'this' is a Winform  
        if (IsHandleCreated) { CreateHandle() }
        this.BeginInvoke(new DelegateVoid(SetDataSource));
    }

但是主窗体不显示,它处于“未响应”状态。请在从回调调用invoke/BeginInvoke之前,添加检查
yourform.IsHandleCreated

public void OpenFormCallback(IAsyncResult ar)
{
    while (!this.IsHandleCreated) { Application.DoEvents(); }
    this.BeginInvoke(new DelegateVoid(SetDataSource));
}

您的代码中是否有一个地方可以调用
控件。Invoke
?或者你不确定它在哪里被调用?