C# Как вручную завершить работу приложения?


#1

Нужно при невыполнении условия завершить работу приложения, как это можно сделать? У меня WPF приложение, но также по возможности напишите как можно досрочно завершить работу и других видов приложений.


#2

Есть несколько вариантов:

  1. закрыть главное окно вызвав на нём метод this.Close();

например главное окно в WPF приложении:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
    }
}
  1. через убийство текущего процесса используя System.Diagnostics.Process.GetCurrentProcess().Kill();

  2. через вызов метода Shutdown() / BeginInvokeShutdown() на экземпляре класса Application,

например:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Application.Current.Shutdown();
    }
}

разницу между Shutdown() и BeginInvokeShutdown() можете почитать здесь

  1. или же просто Application.Exit();

Большая часть из приведённых выше способов должна работать и с другими видами приложений


#3

Так же приложение может быть закрыто при использовании System.Environment:

// Приложение завершается и возвращает ОС указанное параметром значение
System.Environment.Exit(0);        


// Приложение моментально закрывается, предварительно записывая указанную
// через параметр строку в журнал событий.
System.Environment.FailFast("Приложение досрочно завершило свою работу!");