[英]Application immediately terminates after executing Application_Startup()
我有一个WPF应用程序,在App.cs
文件中有两个方法Application_Startup
和Application_Exit
,它们分别挂钩到应用程序的Startup
和Exit
事件。 以下是这两种方法的实现:
private void Application_Startup(object sender, StartupEventArgs e)
{
try
{
if (LoginModel.TryLoginUsingSavedCredentials())
{
MainView view = new MainView();
view.Show();
}
else
{
LoginView loginView = new LoginView();
var result = loginView.ShowDialog();
if (result.HasValue && result.Value)
{
MainView view = new MainView();
view.Show();
}
}
}
catch (FaultException ex)
{
Views.MessageBox.ShowMessage("Login failed",
string.Format("Unabled to login.\r\n{0}", ex.Message),
Entities.Enums.DialogType.OK,
Entities.Enums.DialogIcon.Error);
}
}
private void Application_Exit(object sender, ExitEventArgs e)
{
ConnectionFactory.Instance.CloseAllProxyChannels();
}
当我运行应用程序时,如果LoginModel.TryLoginUsingSavedCredentials()
返回false,则显示LoginView
。 现在,我在设置断点if(result.HasValue ...)
和我步调一致。 MainView
被创建和view.Show()
被执行,但是,调试器箭头立即跳转到Application_Exit
方法,应用程序终止。 我没有看到任何异常,输出错误,转储文件等。
奇怪的是,如果我注释掉Application_Startup
所有逻辑,只需将这两行放入:
MainView view = new MainView();
view.Show();
然后应用程序工作得很好。 知道什么可能出错吗? 提前致谢。
可能是自动关闭,因为您有效地关闭了最后一个窗口。 您可以尝试在获取凭据时将Application.ShutdownMode
更改为OnExplicitShutdown
。
(您也可以将其永久设置为OnMainWindowClose
并将Application.MainWindow
设置为主视图)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.