在一个表单中,比较
BeginInvoke (new Action (() => {
MessageBox.Show ());
}));
与
Invoke (new Action (() => {
MessageBox.Show ());
}));
这两种方法有何区别?在什么情况下应该使用其中一种?MessageBox的消息泵如何影响它们的行为?
我进行了一些测试,发现两种方法都会阻塞UI。
唯一的区别是Invoke会立即被调用,而BeginInvoke需要(非常短暂的)时间才能运行代码。这是可以预料的。