好的,关于这个错误有很多问题,但我似乎找不到解决我的问题的方法。我有一个线程在长时间运行的操作期间从数据库加载一个控件。如果我在该线程完成之前关闭了我的窗口,那么在执行Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
时会抛出Invoke
我已将代码修改为如下所示:
If Not Me.IsDisposed And Me.Created And Me.IsHandleCreated Then '
Me.Invoke(New AddImageDelegate(AddressOf AddImage), item.PartNo, New Bitmap(item.ImagePath))
Me.Invoke(New SetImageDelegate(AddressOf SetImage), I, item.PartNo)
End If
然而,它仍会命中Invoke
行并抛出错误。当调试因例外而停止时,IsDisposed
为真,.Created
为假,.IsHandleCreated
为假。因此,检查这些属性并没有帮助。
那么......在这种情况下,如何防止它运行调用线?
答案 0 :(得分:1)
可能是在您的表单关闭之前调用了Invoke?
而不是如果我建议不要关闭你的表单,直到你设法停止第二个线程,它更安全。