Application.Current.Shutdown (-1) не закрывает приложение WPF - PullRequest
5 голосов
/ 06 июля 2011

Я проверяю, является ли пользователь, прошедший проверку подлинности Windows, действительным пользователем для моего приложения wpf или нет.

Если нет, мне нужно закрыть приложение; но даже после выполнения Application.Current.Shutdown (-1) приложение продолжает успешно выполняться.

Приведенная ниже ссылка говорит, что мне нужно удалить мой StartUpURI; но у меня нет этого тега в моем app.xaml. -> Завершение работы приложения WPF из файла App.xaml.cs

РЕДАКТИРОВАТЬ: - У меня есть этот код в APP.XAML.CS ->

protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            this.exceptionPolicy = ConfigurationManager.AppSettings.Get("ExceptionPolicy");
            this.displayErrorDetails = true;
            this.container = new UnityContainer();

            // Register services and types in Unity
            RegisterServices();

            // Check user
            if (!IsValidUser())
            {
                //Application.Current.Shutdown(); 
                App.Current.Shutdown();
            }

        }

Ответы [ 2 ]

12 голосов
/ 06 июля 2011

Используйте взамен Environment.Exit () . Это будет пытаться корректно завершить работу, но если это не удастся изящно, то будет закрыто грубо - принудительно завершающие потоки.

0 голосов
/ 07 июля 2011

Мне никогда не удавалось отключить что-то с самого начала. Я бы предложил запустить новый поток, который после некоторой краткой задержки закрывает приложение, используя аналогичный код, который есть в вашем примере.

...