Environment.Exit () - это более жестокий способ закрытия вашего приложения. Да, но в целом, если вам нужно убить приложение, чтобы оно закрылось, то я думаю, что вы смотрите на проблему в Неправильный путь.
Вам лучше разобраться, почему другие темы не закрываются изящно?
Вы можете просмотреть событие FormClosing в главной форме и закрыть все ресурсы, которые вешают приложение, не позволяя закрыть его.
Вот как я нашел ресурсы, зависающие в приложении.
- В режиме отладки включите отображение потоков (Это позволит вам увидеть все потоки, которые запущено вашим приложением)
- Закройте приложение так, чтобы оно не закрывалось правильно.
- Нажмите паузу в Visual Studio
- Посмотрите на список потоков и нажмите на них, чтобы увидеть, где в коде они висят, теперь, когда вы можете увидеть, какие ресурсы блокируют закрытие вашего приложения, перейдите к событию FormClosing и закройте / удалите их там.
- Повторяйте, пока приложение не закроется правильно:)
Имейте в виду, что в списке потоков в режиме отладки будут показаны некоторые потоки, которые запущены, но не находятся под вашим контролем, эти потоки обычно имеют имя, и когда вы нажимаете на них, вы получаете сообщение о том, что у вас нет символов. Они могут быть проигнорированы
Одной из причин того, что ваше приложение корректно закрывается, является то, что если некоторые ресурсы (скажем, FileStream ) не работают, поэтому использование некоторых API для принудительного ускорения может сделать все виды появляются «случайные» проблемы, такие как файлы настроек / данных не записываются и т. д.