gpt4 book ai didi

c# - 应用程序在执行 Application_Startup() 后立即终止

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:16 25 4
gpt4 key购买 nike

我有一个 WPF 应用程序,在 App.cs 文件中有两个方法 Application_StartupApplication_Exit,它们挂接到 StartupExit 分别是应用程序的事件。下面是这两种方法的实现:

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设置为您的主视图)

关于c# - 应用程序在执行 Application_Startup() 后立即终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com