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