2010-10-21 71 views

回答

8

没有 - 因为如果你调用EndInvoke,将阻塞,直到代理完成。如果你想要这种行为,只需使用Invoke。换句话说:如果你试图做一些其他的其他的,直到你的(可能是UI修改的)委托在UI线程中执行,你应该解释一下是什么。如果没有其他的东西,那么Invoke会给你更简单的代码。

2

代码启动异步调用,然后立即等待调用完成,这并没有多大意义。即你最终在等待调用线程。

0

不考虑其他提到的东西(我相信这个EndInvoke - BeginInvoke链只是委托的一个示例用法):使用委托是100%OK。如果这是委托体的唯一用法,则不需要将其定义为命名方法。它在代码中更干净,无需跳过该文件。考虑为代表使用更新的语法:

new MethodInvoker(() => { // code here })