Solicitud.Salida

Estoy usando VSTS 2008 + .Net 3.5 + C # para desarrollar la aplicación Windows Forms. Mi confusión es, parece que Application.Exit no obliga a la aplicación a terminar? Si no, ¿a qué método debo llamar para que la aplicación finalice?

EDIT 1:

Normalmente, el método principal es el siguiente, ¿cómo salir de la función Principal correctamente sin llamar a Environment.Exit?

static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); try { Application.Run(new Form1()); } catch (Exception ex) { Console.WriteLine (ex.Message); } } 

gracias de antemano, George

Application.Exit realmente solo le pide al bucle de mensajes muy suavemente.

Si quieres que tu aplicación salga, la mejor manera es salir airoso de Main y cerrar limpiamente cualquier subproceso que no sea de fondo.

Si quieres ser brutal … Environment.Exit o Environment.FailFast ? tenga en cuenta que esto es duro, casi lo mismo que matar su propio Process .

Pruebe lo siguiente:

 Process.GetCurrentProcess().Kill(); 

Environment.Exit no funciona con Winforms and Environment.FailFast FailFast arroja su propia excepción.

Si su aplicación no sale correctamente cuando llama a Application.Exit hay (obviamente) algo que le impide hacerlo. Esto puede ser cualquier cosa desde una configuración de formulario e.Cancel = true en el evento FormClosing , a un hilo que no es un hilo de fondo que aún se está ejecutando. Le aconsejaría que investigue cuidadosamente qué es exactamente lo que mantiene vivo su proceso, y ciérrelo de una manera agradable. Eso también debería hacer que su aplicación se cierre bien.

Normalmente, en una aplicación de winforms, debería ser suficiente para cerrar el formulario principal.

yo suelo

 if (System.Windows.Forms.Application.MessageLoop) { // Use this since we are a WinForms app System.Windows.Forms.Application.Exit(); } else { // Use this since we are a console app System.Environment.Exit(1); } 

de http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

Tuve el mismo problema cuando descubrí que abría un nuevo formulario / ventana dentro del progtwig, y ​​solo ESCONDER ese segundo formulario (sin cerrarlo) impedía que el formulario principal abandonara correctamente mediante Application.Exit ();

Hay dos soluciones en este caso. Primero es simplemente usar Cerrar () en el formulario principal en lugar de Application.Exit (). La segunda solución es usar el siguiente código:

 if (secondForm != null && !secondForm.IsDisposed) secondForm.Dispose(); 

Descubrí que simplemente todo lo que necesita hacer es inscribirse en hacer application.exit y todo lo que tiene que hacer es ponerlo en End Simply enough the End lo cierra