加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:48:51 所属栏目:百科 来源:网络整理
导读:我通过ThreadPool.QueueUserWorkItem启动一个线程,它在其中有一个消息框对话框: System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show(“would you like to download upgrade in background? ..”,“Upgrade Available”,MessageB
我通过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.如果线程上还没有消息泵运行,它将设置一个临时的消息,以便运行.它会在显示呼叫完成后将其拆除.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读