Estoy tratando de averiguar cuál debería estar usando. Al cerrar mi aplicación WinForm se desencadena un formulario en el modo de diálogo. Ese formulario ejecuta un Trabajador de Antecedentes que Sincroniza el DB con el DB remoto y muestra su progreso en el "Formulario de bienvenida".Application.Exit() vs Application.ExitThread() vs Environment.Exit()
que tienen un método de este modo:
private void CloseMyApp()
{
SaveUserSettings();
splashForm = new SplashForm();
splashForm.ShowDialog();
Application.ExitThread();
//Application.Exit();
}
que es lo que llamo para cerrar mi aplicación de Menú -> Salir y en el caso . Application.Exit()
da el siguiente error - se modificó>
Colección; la operación de enumeración no se puede ejecutar.
Ahora leo que Environment.Exit()
es brutal y significa que es probable que haya algo malo en su aplicación (ver here).
Application.ExitThread()
funciona, pero estoy seguro de que puede que solo APAREZCA a funcionar y, como nunca antes lo he usado, no estoy seguro de cuándo es apropiado hacerlo.
O si necesita fallar rápidamente después de detectar un error en un controlador de error de nivel superior, después de iniciar sesión si es posible, por supuesto. –