MENU

【C#超入門】アプリケーションの終了時に行う処理を記述する方法|ApplicationExitの使い方

C# アプリケーション終了処理

Application.ApplicationExitを使ってアプリケーションを終了する方法とApplication.ExitメソッドとEnvironment.Exitメソッドを利用してアプリケーションを終了する方法を解説していきます。

目次

Application.ApplicationExitイベントを使ってアプリケーション終了を知る方法

Application.ApplicationExitイベントを使うことでアプリケーション終了を知ることができます。

サンプルコード

using System;
using System.Windows.Forms;

namespace CloseAppEvent
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            //ApplicationExitイベントハンドラを追加
            Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
        }

        /// <summary>
        /// ApplicationExitイベントハンドラ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Application_ApplicationExit(object sender, EventArgs e)
        {
            MessageBox.Show("アプリケーションが終了されます。");

            //ApplicationExitイベントハンドラを削除
            Application.ApplicationExit -= new EventHandler(Application_ApplicationExit);
        }
    }
}

実行結果

Application_ApplicationExit(object sender, EventArgs e)のイベントハンドラが呼び出されてメッセージボックスが開きました。

アプリケーションを終了させる方法

フォームアプリを作成している場合などは途中でアプリケーションを終了させたい場合がありますよね?

そういった場合はApplication.ExitメソッドかEnvironment.Exitメソッドを使います。

Application.Exitメソッドを使う場合

厳密に言うとApplication.Exitメソッドはアプリケーションの終了処理ではありません。なぜなら、Application.Runメソッドで開始されたメッセージループを終了させるためのメソッドだからです。

そのため、フォームアプリのエントリポイントにメインフォームを指定している場合は、Application.Run メソッドの終了(Exit)がアプリケーションの終了と同じ処理となるため、結果的にアプリケーションを終了させることができます。

//Application.RunメソッドをExitします
Application.Exit();

ちなみに、Application.Exit メソッドは呼び出した時点で、関連するフォームを全て閉じますが、その際、FormClosing イベント、および FormClosed イベントが発生します。

Environment.Exitメソッドでアプリケーションを強制終了させる

メインフォームを開く前にアプリケーションを終了させたい場合には、Environment.Exitメソッドを使います。これで実行中のプロセスをすべて終了させることができます。

//アプリケーションを強制終了します
Environment.Exit(0);
よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる