5

我找到了这段代码:

this.Invoke(new EventHandler(EventGetSum));

这和写作不一样吗:

EventGetSum();

这有什么用?

4

3 回答 3

13

如果你这样写EventGetSum(),立即调用EventGetSum 方法。

如果您编写new EventHandler(EventGetSum)它会创建一个委托,该委托将(反过来)在调用 EventGetSum 时调用。

调用Control.Invoke从负责控件的 UI 线程调用给定委托。这是必要的,因为您不能从任意线程访问 UI 元素。

于 2009-02-27T10:46:40.490 回答
5

它执行EventGetSum窗口this所属线程中的方法。

于 2009-02-27T10:48:00.783 回答
4

这通常在处理跨线程 UI 调用时使用。

查看 ISynchronizeInvoke 的 MSDN 文档。

于 2009-02-27T10:48:19.253 回答