我需要调用MessageBox调用吗?

时间:2010-05-08 23:59:21

标签: .net invoke messagebox

要弹出一个消息框,我正在使用MessageBox.Show(...)。我通常将调用包装在Invoke中:

BeginInvoke (new Action (() => {
    MessageBox.Show ());
}));

我删除了原来问题的一部分,已经回答elsewhere

如果我从非GUI线程调用,是否总是需要将MessageBox调用包装在(Begin - )Invoke中?

2 个答案:

答案 0 :(得分:1)

简短回答:是的,因为我认为这是最佳做法。

更长的答案:

你不应该陷入这样一种情况,你必须问自己这个问题,至少从长远来看是这样。通常,在设计良好的软件中,您已经在用户界面和“世界其他地方”之间定义了“网关”,这也是您提升通知GUI必须完成某些事情的事件的地方(通过BeginInvoke(EventRaiserMethod(params)))。

答案 1 :(得分:0)

  1. 据我所知,只要您不在调用MessageBox.Show时提供owner参数,就不必在UI线程上调用该调用。
    也就是说,如果您提供所有者参数,则必须在创建所有者的步骤中调用MessageBox.Show的调用。
    - 如果我错了请纠正我 -
  2. 这取决于您是否希望UI线程继续执行,或者在显示msgbox时是否要阻止它。