我找到了这段代码:
this.Invoke(new EventHandler(EventGetSum));
这与写成以下形式不同吗:
EventGetSum();
这有什么用途?
EventGetSum()
,它会立即调用EventGetSum方法。new EventHandler(EventGetSum)
,它会创建一个委托,当它被调用时,将依次调用EventGetSum。Control.Invoke
会从负责控件的UI线程中调用给定的委托。这是必须的,因为不应该从任意线程访问UI元素。它在窗口this
所属的线程中执行EventGetSum
方法。
当涉及到跨线程UI调用时,通常会使用该方法。
请查看ISynchronizeInvoke的MSDN文档。