要弹出一个消息框,我正在使用MessageBox.Show(...)
。我通常将调用包装在Invoke中:
BeginInvoke (new Action (() => {
MessageBox.Show ());
}));
(我删除了原来问题的一部分,已经回答elsewhere )
如果我从非GUI线程调用,是否总是需要将MessageBox调用包装在(Begin - )Invoke
中?
答案 0 :(得分:1)
简短回答:是的,因为我认为这是最佳做法。
更长的答案:
你不应该陷入这样一种情况,你必须问自己这个问题,至少从长远来看是这样。通常,在设计良好的软件中,您已经在用户界面和“世界其他地方”之间定义了“网关”,这也是您提升通知GUI必须完成某些事情的事件的地方(通过BeginInvoke(EventRaiserMethod(params)))。
答案 1 :(得分:0)
MessageBox.Show
时提供owner参数,就不必在UI线程上调用该调用。MessageBox.Show
的调用。