为什么在我可以编写代码内联时使用Invoke?

时间:2014-09-29 21:04:37

标签: c# .net winforms

这是参考我正在处理的winforms应用程序。我对Invoke感到困惑。

我知道beginInvoke是异步的,并且invoke是同步的。 beginInvoke是有意义的,如果你想让一块代码工作异步并让UI响应,但为什么我想在进程同步时使用Invoke?我可以通过编写内联代码获得相同的结果吗?

2 个答案:

答案 0 :(得分:5)

不,不完全是。 Invoke还确保代码在正确的线程中运行

它的主要用途是从后台线程调用Invoke并让代码在UI线程上运行。

答案 1 :(得分:2)

Invoke通常用于此上下文:

Control.Invoke(...);

Control实际上是一个控件。这里重要的是执行发生在UI线程

有关详细信息,请参阅MSDN