线程里可以直接用messagebox.show显示异常吗,如果可以这个messagebox.show的宿主是哪个? 我的困惑是messagebox.show应该是UI线程的范畴吧。
------解决思路----------------------
这会在非UI线程启动临时消息循环,这个消息循环不是由Application.Run建立的,处理的过程和UI线程不完全一样。如果只是简单的MessageBox,应该没什么大问题,能看到的区别应该只有它无法阻塞UI线程上的窗体。
不过需要注意:如果是使用线程池线程,弹一个窗体长时间阻塞着它不太好;非UI线程默认不是STA方式的,这对进行UI相关的COM调用有问题;winform和第三方控件也肯定不会对这种非标准方式做多少测试。所以如果是更复杂的情况,最好不要这样,建议的方式是用BeginInvoke调度到UI线程去显示。