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