首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要为InvokeRequired而烦恼?

为什么要为InvokeRequired而烦恼?
EN

Stack Overflow用户
提问于 2011-09-01 20:11:42
回答 2查看 334关注 0票数 1

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

我的问题是--有没有一个很好的理由去检查InvokeRequired?例如,在不同的情况下,可以从工作线程或从UI线程调用事件处理程序。让UI线程调用它自己最终要执行的方法调用会有什么后果吗?

比如说..。

代码语言:javascript
复制
Private Sub SomeProcedure() Handles event1, event2, event3
  Me.Invoke(New delegateSomeProc(Address of SomeProc))
EndSub

现在,假设event1从UI线程触发,但事件2和/或3从其他线程触发……event1调用invoke有什么危险吗,即使它不是必须的?是不是有点低效?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-01 20:21:11

让UI线程调用它自己最终要执行的方法调用会有什么后果吗?

据我所知,唯一的区别是,如果在创建控件的句柄之前调用Invoke,那么使用它将会失败。

这篇article更详细地讨论了这些问题。

票数 2
EN

Stack Overflow用户

发布于 2011-09-01 20:18:40

让UI线程调用它自己最终要执行的方法调用会有什么后果吗?

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7270077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档