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