我正在创建 WPF 项目并且我有两个屏幕
1)载入画面
2)主窗口
我的代码如下来自Loading screen
private void Window_Loaded(object sender, RoutedEventArgs e)
{
loadingThread = new Thread(load);
loadingThread.SetApartmentState(ApartmentState.STA);
loadingThread.Start();
}
private void load()
{
Thread.Sleep(1000);
this.Dispatcher.Invoke(showDelegate, "Loading UI...");
Thread.Sleep(2000);
//do some loading work
this.Dispatcher.Invoke(hideDelegate);
Thread.Sleep(2000);
this.Dispatcher.Invoke(DispatcherPriority.Normal,
(Action)delegate() { this.CLose(); });
MainWindow Mw = new MainWindow();//Gives me the error
Mw.ShowDialog();
}
当我调用我的主窗口屏幕时,我收到错误“应用程序对象正在关闭”。我相信因为线程正在关闭我收到了错误, 谁能告诉我调用主窗口的其他可能方式是什么
谢谢大家
最佳答案
您正在关闭调用应用程序关闭命令的最后一个窗口。
在关闭“此”窗口之前创建并打开新窗口:
你可以改变这个:
this.Dispatcher.Invoke(DispatcherPriority.Normal,
(Action)delegate() { this.Close(); });
为此:
this.Dispatcher.Invoke(DispatcherPriority.Normal,
(Action)delegate()
{
MainWindow Mw = new MainWindow();
// Mw.ShowDialog(); I changed this line because it cannot be a dialog here.
Mw.Show();
this.Close();
});
关于c# - WPF 线程错误(处理了无效操作异常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707029/