【发布时间】:2012-03-26 13:19:36
【问题描述】:
好的,关于这个错误有很多问题,但我似乎无法找到解决我的问题的方法。我有一个线程在长时间运行的操作期间从数据库加载控件。如果我在该线程完成之前关闭窗口,它会在执行Invoke 时抛出Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
我已将代码修改为如下所示:
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 为假。所以检查这些属性没有帮助。
那么...在这种情况下,我该如何防止它运行调用行?
【问题讨论】:
-
@HansPassant,是的,似乎是这样。当有这么多不完全相同的类似问题时,总是很难找到。
标签: vb.net multithreading invoke invalidoperationexception