0
這是一個調用自定義C#消息框的函數。該功能是從模擬進程中調用的,該進程在不是UI線程的線程內運行。將主窗口設置爲從STA線程調用的對話所有者(消息框)
public Output.ButtonResult msgboxYesNo(string Text, string title) {
Output.Message_Box msg = new Output.Message_Box();
msg.Dispatcher.Invoke(new Action(() => {
msg.seeQuestion(Text, title);
msg.Topmost = true;
Application.Current.MainWindow.Dispatcher.Invoke(new Action(()
=> { msg.Owner = Application.Current.MainWindow; }));
msg.ShowDialog();
}));
return msg.result;
}
有問題的線是這個:
Application.Current.MainWindow.Dispatcher.Invoke(new Action(() =>
{ msg.Owner = Application.Current.MainWindow; }));
它拋出這個:
調用線程不能訪問該對象,因爲不同的 線程擁有它
因爲我想將主窗口設置爲t他是自定義消息框的所有者,在分離的線程中調用該消息框。
如何設置主窗體作爲消息框的所有者?
(我希望我解釋這個問題不夠清楚,形式是WPF)
感謝您的啓發,我現在已經清楚!我會補充說,我無法在調度程序內做出回報,我必須進行變量調整,然後返回外部。 –