0

オブジェクトがファイナライズされる前にいくつかのクリーンアップ コードを実行できるように、このイベントまたは類似のイベントにサブスクライブする方法はありますか?

4

2 に答える 2

3

イベントは静的であるため、DLL で使用しても問題は発生しません。

ただし、クラス ライブラリが実際に Winforms アプリケーションから使用されている場合にのみイベントが発生することに注意してください。Winforms アプリからのみ使用できる機能を公開する場合にのみ、それを確認できます。カスタム コントロールまたは UserControl のように。

代替手段は、AppDomain イベント、DomainUnload および ProcessExit です。または、メインアプリがシャットダウンについて通知することを期待しています. アプリが終了する理由は必ずしもわかりません。たとえば、ハード クラッシュの設定を保存したくないでしょう。ApplicationSettingsBase クラスもそのパターンに従っていることに注意してください。その Save() メソッドを明示的に呼び出す必要があります。

于 2012-11-11T20:49:03.737 に答える
1

このイベントは、のイベントと同じ方法でサブスクライブします。

ApplicationExit MSDN ページの例は明確です。

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

private void OnApplicationExit(object sender, EventArgs e) {
    // do your cleanups
}
于 2012-11-11T20:40:23.067 に答える