Я работаю в .NET4.5 Winforms C #.
Мое приложение основано на шаблоне контроллера представления модели. На главной форме (просмотре) у меня есть кнопка Выход. Если пользователь нажимает эту кнопку, на контроллере вызывается метод, который очищает данные, а затем вызывает Application.Exit (). Это прекрасно работает.
Я также хотел бы запустить этот метод, когда пользователь нажимает крестик выхода окна по умолчанию в верхнем правом окне. Для этого я обрабатываю событие FormClosing. В этом Событии я снова вызываю метод контроллера, который вызывает Application.Exit ();
Проблема в том, что Application.Exit () также запускает событие FormClosing. Что создает двойной вызов. Конечно, я могу установить флаг и проверить это, но я чувствую, что делаю что-то не так.
Как правильно закрыть мое приложение winforms и очистить необходимые вещи. Я не хочу выполнять очистку в событии закрытия формы представления, это кажется уродливым.