アプリケーションを強制的にシャットダウンし、終了コードを返したいと考えています。MSDN を調べたところ、WPF にはアプリケーションにパラメーターとしてエラー コードを受け取る Shutdown メソッドがあることがわかりましたが、System.Windows.Forms.Application にはないようです。
Application.Exit() は表示されますが、エラー コードを返す方法はありません。
これが可能かどうかは誰にもわかりませんか?
ありがとう
System.Environment.Exit(yourExitCode) を使用できます。
System.Environment クラスと終了時に ExitCode プロパティを設定します。例えば
System.Environment.ExitCode = 1
Application.Exit()
フォーム クラスに ExitCode プロパティ (または類似のもの) を追加します。
class MyForm : Form {
public int ExitCode { get; set; }
void ShutDownWithError(int code) {
ExitCode = code;
Close();
}
}
コードのどこかに次のものがあります。
static void Main() {
// ...
MyForm form = new MyForm();
Application.Run(myForm);
}
それを次のように変更します。
static void Main() {
// ...
MyForm myForm = new MyForm();
Application.Run(myForm);
Environment.Exit(myForm.ExitCode);
}
フォームで ShutdownWithError メソッドが呼び出されると、メイン フォームを閉じます。これにより、Application.Run で開始されたループから飛び出します。次に、終了コードを取得して、Environment.Exit でプロセスを強制終了します。