2009-11-05 10 views
6

C++には、システムが終了したときに実行されるべき関数を登録できるatexitという関数があります。 C#に類似のイベントがありますか?atexit、Cで代理人を終了

UPDATE: AppDomain.ProcessExitは、Ctrl-CまたはCtrl-Breakを捕まえていないようです。それについて誰もが知っていますか?

答えて

10

AppDomainクラスのProcessExitイベントとDomainUnloadイベントを確認できます。

+0

はしかしCtrlキーを押しながらCをキャッチしていないようです。それについて何か知っていますか? –

+1

@Mats:CTRL + Cは、これらのイベントを発生させない何らかの方法でプロセスを終了しているようです。ただし、特定のキーの組み合わせによってConsole.CancelKeyPressイベントが発生します。したがって、AppDomain.ProcessExitとConsole.CancelKeyPressの組み合わせは、ほとんどの終了シナリオをカバーする必要があります。 –

0

あなたはリサイズを実行している場合は、Application.ApplicationExitイベント

1

にリスナーを追加できるアプリあなたはWinFormsのアプリケーションをしている場合Application.ApplicationExitイベントがあります。 WPFの場合はApplication.Exitです。

+0

私はアプリケーションをシャットダウンする方法を知っています。イベントが発生したときにイベントをアタッチする方法に興味があります。とにかくthoありがとう。 –

+0

申し訳ありませんが、コンソールアプリケーションに関するものが間違っていました(私はそれを編集しました)。残っている2つの参照は、アプリケーションを終了したときに発生するイベントです(WinForm/WPF)。 – andyp

+0

Cool。残念ながら私はコンソールモードでそれを必要としています..おそらくそれを言及しているはずです。 –

1

多分これに対する答えはあなたを助けるかもしれない:

+0

したがって、おそらくProcessExitとConsoleCancelEventHandlerの両方のイベントを捕捉する必要があります。いつも呼び出されている1つのイベントできちんとしているでしょうか。まあ、よく.. –

+0

することができます。しかし、それは大した問題ではないはずです。イベントハンドラか何かによって呼び出される別のメソッドで行う必要があるものは何でもしてください:) – Svish

関連する問題