Конец приложения в C #

В качестве примера ниже я использую оператор If для своего Приложения, где, если вы нажмете Да, Приложение должно закрыться. Я нажимаю Да и Нет, и приложение просто продолжается независимо. Кто-нибудь знает, почему это может произойти?

if (diff_ULNDOB.Any())
{
     DialogResult result1 = System.Windows.Forms.MessageBox.Show("Cannot proceed with Cross Year checks! Please see Workbook " + output + "." + " Do you wish to close the Application?", "Error",
     MessageBoxButtons.YesNo);

    if (result1 == DialogResult.Yes)
    {
       System.Windows.Forms.Application.Exit();           
    }

    Progress.Error = true;
    break;
}

2 ответа

Решение

Добавлять Environment.Exit(0); когда вы хотите закрыть приложение.

Я хотел бы использовать Application.Exit() так как это более чистый способ сделать это, чем Environment.Exit(0),

Преимущества использования Application.Exit() является то, что позволит форме выполнять любые процессы очистки, такие как Form.OnClose который может включать закрытие соединений с базой данных и обработчики файлов.

Enivornment.Exit(0) это то же самое, что просто убить процесс напрямую, поэтому, если вы используете его, убедитесь, что все соединения и файлы были освобождены правильно.


Выше было для приложений Windows Forms. Если это консольное приложение, лучший способ выхода из приложения - вернуть соответствующий код завершения в Main метод.

Другие вопросы по тегам