我有一个从线程运行的窗口,我们称之为MainThread,以及执行其他非图形任务的后台线程。
有时后台线程会调用MessageBox.Show(...)
方法(模态并停止后台线程)。在此调用之前,我想暂停MainThread并恢复它,以便在显示messageBox
时禁用我的MainWindow控件。
所以我的问题是:
答案 0 :(得分:3)
您可以使用Control.Invoke
(Windows窗体)或Dispatcher.Invoke
(WPF)实际显示主线程上的消息框,而不是挂起主线程,而是从后台线程调用它。
除了提供您希望的行为之外,这还有一个优点,即允许您将消息框的父级框架添加到正确的窗口,这将提供正确的模态消息框行为。