繁体   English   中英

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

[英]Application immediately terminates after executing Application_Startup()

我有一个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设置为主视图)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM