Amazonでお得な買い物

【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);
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内の精密機器を作っている会社に勤務している14年目のエンジニアです。趣味は美味しいものを食べることとゴルフ。プログラムについて今まで学んだことをわかりやすく発信するサイトを目指しています。

コメント

コメントする

目次