为什么要用invokerrequired呢?



我理解需要使用Invoke/BeginInvoke从工作线程调用到对属于UI线程的组件进行更改的函数或过程…

我的问题是-有一个很好的理由去检查invokerrequired吗?在不同的情况下,事件处理程序可以从工作线程调用,也可以从UI线程调用。是否有任何后果有UI线程调用调用一个方法,它将自己最终执行?

说…

Private Sub SomeProcedure() Handles event1, event2, event3
  Me.Invoke(New delegateSomeProc(Address of SomeProc))
EndSub

现在,假设event1从UI线程触发,但Events 2和/or3从其他线程触发…无论如何,event1调用invoke是否有任何危险,即使它不必这样做?是不是效率太低了?

是否有任何后果有UI线程调用调用一个方法,它将自己最终执行?

我所知道的唯一区别是,如果在控件的句柄创建之前调用Invoke,则会失败。

本文更详细地讨论了这些问题。

是否有任何后果有UI线程调用调用一个方法,它将自己最终执行?

不,没有任何后果,除了可能不需要调用的性能之外,直接方法调用将比通过invoke基础结构更快。

相关内容

  • 没有找到相关文章

最新更新