C++には、システムが終了したときに実行されるべき関数を登録できるatexitという関数があります。 C#に類似のイベントがありますか?atexit、Cで代理人を終了
UPDATE: AppDomain.ProcessExitは、Ctrl-CまたはCtrl-Breakを捕まえていないようです。それについて誰もが知っていますか?
C++には、システムが終了したときに実行されるべき関数を登録できるatexitという関数があります。 C#に類似のイベントがありますか?atexit、Cで代理人を終了
UPDATE: AppDomain.ProcessExitは、Ctrl-CまたはCtrl-Breakを捕まえていないようです。それについて誰もが知っていますか?
AppDomain
クラスのProcessExit
イベントとDomainUnload
イベントを確認できます。
あなたはリサイズを実行している場合は、Application.ApplicationExit
イベント
にリスナーを追加できるアプリあなたはWinFormsのアプリケーションをしている場合Application.ApplicationExitイベントがあります。 WPFの場合はApplication.Exitです。
私はアプリケーションをシャットダウンする方法を知っています。イベントが発生したときにイベントをアタッチする方法に興味があります。とにかくthoありがとう。 –
申し訳ありませんが、コンソールアプリケーションに関するものが間違っていました(私はそれを編集しました)。残っている2つの参照は、アプリケーションを終了したときに発生するイベントです(WinForm/WPF)。 – andyp
Cool。残念ながら私はコンソールモードでそれを必要としています..おそらくそれを言及しているはずです。 –
多分これに対する答えはあなたを助けるかもしれない:
したがって、おそらくProcessExitとConsoleCancelEventHandlerの両方のイベントを捕捉する必要があります。いつも呼び出されている1つのイベントできちんとしているでしょうか。まあ、よく.. –
することができます。しかし、それは大した問題ではないはずです。イベントハンドラか何かによって呼び出される別のメソッドで行う必要があるものは何でもしてください:) – Svish
はしかしCtrlキーを押しながらCをキャッチしていないようです。それについて何か知っていますか? –
@Mats:CTRL + Cは、これらのイベントを発生させない何らかの方法でプロセスを終了しているようです。ただし、特定のキーの組み合わせによってConsole.CancelKeyPressイベントが発生します。したがって、AppDomain.ProcessExitとConsole.CancelKeyPressの組み合わせは、ほとんどの終了シナリオをカバーする必要があります。 –