当前位置: 代码迷 >> C# >> 线程里可以直接用messagebox.show显示错误吗
  详细解决方案

线程里可以直接用messagebox.show显示错误吗

热度:128   发布时间:2016-05-05 05:16:53.0
线程里可以直接用messagebox.show显示异常吗
线程里可以直接用messagebox.show显示异常吗,如果可以这个messagebox.show的宿主是哪个? 我的困惑是messagebox.show应该是UI线程的范畴吧。
------解决思路----------------------
这会在非UI线程启动临时消息循环,这个消息循环不是由Application.Run建立的,处理的过程和UI线程不完全一样。如果只是简单的MessageBox,应该没什么大问题,能看到的区别应该只有它无法阻塞UI线程上的窗体。

不过需要注意:如果是使用线程池线程,弹一个窗体长时间阻塞着它不太好;非UI线程默认不是STA方式的,这对进行UI相关的COM调用有问题;winform和第三方控件也肯定不会对这种非标准方式做多少测试。所以如果是更复杂的情况,最好不要这样,建议的方式是用BeginInvoke调度到UI线程去显示。
  相关解决方案