Я пытаюсь понять, что мне следует использовать. При закрытии моего приложения WinForm формы запускаются в режиме диалога. Эта форма запускает фоновый рабочий, который синхронизирует базу данных с удаленной базой данных и отображает ее ход в «форме всплеска».
У меня есть такой метод:
private void CloseMyApp()
{
SaveUserSettings();
splashForm = new SplashForm();
splashForm.ShowDialog();
Application.ExitThread();
//Application.Exit();
}
- это то, что я вызываю, чтобы закрыть приложение из Меню -> Выход и в событии Form_FormClosing()
. Application.Exit()
выдает следующую ошибку ->
Коллекция была изменена; операция перечисления может не выполняться.
Теперь я прочитал, что Environment.Exit()
жесток и означает, что, вероятно, что-то не так с вашим приложением (см. здесь ).
Application.ExitThread()
работает, но я согласен с тем, что он может появиться только на работе, и, поскольку я никогда не использовал его раньше, я не уверен, когда это обычно уместно.