在表格中,比较
BeginInvoke (new Action (() => {
MessageBox.Show ());
}));
Run Code Online (Sandbox Code Playgroud)
同
Invoke (new Action (() => {
MessageBox.Show ());
}));
Run Code Online (Sandbox Code Playgroud)
有什么区别,什么时候应该使用一个而不是另一个?如何通过MessageBox的消息泵来影响行为?
我做了一些测试,发现两种方法都阻止了UI.
唯一的区别是Invoke实际上是立即调用的,而BeginInvoke需要(非常短的)时间直到代码运行.这是可以预料的.