c# – MessageBox.Show()会自动编组到UI线程吗?

前端之家收集整理的这篇文章主要介绍了c# – MessageBox.Show()会自动编组到UI线程吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过ThreadPool.QueueUserWorkItem启动一个线程,它在其中有一个消息框对话框:

System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show(“would you like to download upgrade in background? ..”,“Upgrade Available”,MessageBoxButtons.YesNo);

似乎工作正常,但有些客户建议他们没有弹出消息,我有点怀疑.我有.NET Framework 2.0的感觉,你不需要编组这个特定的调用,它为你做.正确?

这是一个半相关的兴趣主题
Why use a owner window in MessageBox.Show?

解决方法

不,它不是元帅的UI线程.如果你考虑,它是不可能这样做的.

在应用程序中可以有多个UI线程.一些程序,如Internet Explorer,有很多UI线程.哪个UI线程将.Show调用选择?

也可以在没有UI线程的应用程序中使用MessageBox.Show.您可以很好地在控制台应用程序中调用它,它将会工作.

MessageBox.Show将在从其调用的线程上显示UI.如果线程上还没有消息泵运行,它将设置一个临时的消息,以便运行.它会在显示呼叫完成后将其拆除.

猜你在找的C#相关文章