2011-07-06 13 views
5

Estoy comprobando si el usuario autenticado de Windows es o no un usuario válido para mi aplicación wpf.Application.Current.Shutdown (-1) no cierra la aplicación WPF

De lo contrario, debo cerrar la aplicación; pero incluso después de ejecutar Application.Current.Shutdown (-1) la aplicación sigue ejecutándose felizmente.

El siguiente enlace dice que necesito eliminar mi StartUpURI; pero no tengo esa etiqueta en mi app.xaml. ->Shutting down a WPF application from App.xaml.cs

EDIT: - tengo este código en 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

Debe mostrar el código que rodea 'Application.Current.Shutdown()'. El problema puede tener que ver con el lugar desde donde lo llamas. –

+0

Mi código está en App.Xaml -> OnStartup (StartupEventArgs e) – Relativity

+2

¿Puede publicar el contenido completo de su archivo App.xaml.cs? – NickHeidke

Respuesta

11

Uso Environment.Exit() lugar. Eso intentará cerrar con gracia, pero si no puede hacerlo correctamente, se apagará bruscamente, terminando con fuerza los hilos.

+0

Environment.Exit() funciona ... pero frente a problemas en DisPose() – Relativity

+1

Bueno, sí, tendrías que llamar explícitamente a Dispose() en tus objetos primero, ya que Environment.Exit terminará tus hilos. Application.Current.Shutdown no llamará a Dispose; nada lo hará. No hay eliminación automática en .net. –

0

Nunca he tenido suerte cerrando algo desde la puesta en marcha. Sugeriría comenzar un nuevo hilo que, después de un breve retraso, apaga la aplicación usando un código similar al que tiene en su muestra.

Cuestiones relacionadas