2013年11月15日金曜日

C# アプリケーションを終了する

そもそもアプリを起動するためのデータが取得できなかっただとか、
アプリケーションに必須なものが取得できずアプリを終了せざるをえないこともあるだろう。
あるいは、閉じるボタン以外の場所をクリックしたいときに終了するとか。

そんなわけでどうすればアプリケーションを終了できるのかを調べてみた。

参考サイト
アプリケーション(自分自身)を終了させる: .NET Tips: C#, VB.NET

上記サイトによると、3つの方法で終了できるらしい。

/*---------------------------------------------------------------------------*/
this.Close();
System.Windows.Forms.Application.Exit();
System.Environment.Exit(0);
Environment.FailFast("イベントログに書き込む")
/*---------------------------------------------------------------------------*/

上から順番に、
  • メインフォームを閉じる
  • フォームアプリケーションの終了
  • エントリポイントを抜ける
  • 強制終了
だそうな。

上記2つはフォームアプリケーションでしか使用できないので、コンソールは下の2択。
さらにFailFastはアプリケーションの状態悪化時なんかに呼び出すべきものであるらしいので、
よほどのことがない限り、コンソールはEnvroiment.Exitでよさそう。

フォームアプリケーションは全部選択できるんだけど、上記の理由によりFailFastはなし。
Envroiment.Exitはプロセスを強制的に終了してエントリポイントを抜けるため、
呼び出した場所以降のメソッドが呼ばれない。
Closeは、そもそもメインフォーム以外の場所から呼べんじゃないですか。
参照を持っていれば話は別だけども。
ということでApplication.Exitが一番よさそう。

0 件のコメント:

コメントを投稿