Событие WPF Application_Startup выполняется вечно, если я не сделаю окно и не покажу его - PullRequest
1 голос
/ 08 февраля 2012

Приложение WPF закрывается, если я открываю окно и закрываю его, но если я не открываю никаких окон, оно продолжает работать, пока я не закрою его явно.Вот быстрый пример приложения:

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        if (e.Args.Count() != 0)
        {
            var mw = new MainWindow();
            mw.ShowDialog();
        }
    }
}

Если вы предоставите этому приложению аргумент командной строки, оно откроет окно и закроется, как только вы закроете окно;если вы не предоставите аргумент, он не закроется и должен быть уничтожен через диспетчер задач.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Чек http://msdn.microsoft.com/en-us/library/system.windows.application.shutdownmode.aspx.

Режим выключения по умолчанию - OnLastWindowClose.

0 голосов
/ 08 февраля 2012

По-видимому, это связано с тем, как WPF управляет своим завершением, есть свойство ShutdownMode, которое необходимо установить:

public partial class App : Application 
{ 
    private void Application_Startup(object sender, StartupEventArgs e) 
    {
        // this makes the behavior consistant, must call App.Shutdown(0) to exit
        this.ShutdownMode = System.Windows.ShutdownMode.OnExplicitShutdown;

        if (e.Args.Count() != 0) 
        { 
            var mw = new MainWindow(); 
            mw.ShowDialog(); 
        } 
    } 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...