@Kiril1221

Почему Application.Exit не работает, в чем смысл этого метода?


Environment.Exit - из MSDN. Завершает этот процесс и предоставляет базовой операционной системе указанный код выхода. Это код для вызова, когда вы используете консольное приложение.

Application.Exit - из MSDN: сообщает всем обработчикам сообщений о том, что они должны прекратить работу, а затем закрывает все окна приложений после обработки сообщений. Этот код используется, если вы вызвали Application.Run (приложения WinForms), этот метод останавливает все запущенные циклы сообщений во всех потоках и закрывает все окна приложения. Есть еще некоторые проблемы с этим методом, читайте об этом на странице MSDN.


Все ответы находят эту цитату, но это полностью абсолютно не подходит к моей ситуации. Дак да, у меня Application.Run( new FormTest() ), приложение не консольное, в main ни чего нету за этим вызовом;
//main
//....
 Application.Run( new FormTest() );
}
////////////////////formtest.cs
FormTest(){
 try{
      //....................................................нету ни каких потоков, вылетает IOException сразу 
catch(Exception ex){
  Message.Show(ex.StackTrace,"Error",....);
Application.Exit();
}

}

Почему программа как ни во что далее работает. В чем смысл этого метода.
  • Вопрос задан
  • 549 просмотров
Решения вопроса 1
@rPman
Application.Exit не такая смертельная команда, именно из коннструктора ее не получается вызвать, вы можете завести свой boolean флаг необходимости выхода и вызвать этот метод из Form_Load (чтобы форма кратковременно не появлялась, можете в конструкторе или в свойствах сделать ее скрытой, а на Form_Load включать отображение).

Например Environment.Exit(0) работает в любом случае но осторожно, деструкторы могут быть не вызваны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы