我有一个从线程(我们称之为 MainThread)运行的窗口,以及一个执行其他非图形任务的后台线程。
有时后台线程会调用MessageBox.Show(...)
方法(即modal并停止后台线程)。在此调用之前,我想挂起 MainThread 并在之后恢复它,以便在主窗口的控件被禁用时messageBox
显示。
所以我的问题是:
- 如何从后台线程访问主线程?
- 如何挂起/恢复它(考虑到 Thread.suspend 已弃用)?
您可以使用而不是挂起主线程Control.Invoke
(Windows 窗体)或Dispatcher.Invoke
(WPF) 实际上在主线程上显示消息框,但从后台线程调用它。
除了提供您希望的行为之外,这还有一个优点,即允许您将消息框设置为正确的窗口的父级,这将提供正确的模式消息框行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)