IWeakEventListener インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
WeakEvent パターンと WeakEventManagerを介してイベントを受信することを期待するクラスのイベント リッスンサポートを提供します。
public interface class IWeakEventListener
public interface IWeakEventListener
type IWeakEventListener = interface
Public Interface IWeakEventListener
- 派生
注釈
WeakEventManager (ディスパッチャー) は、このインターフェイスを実装し、ReceiveWeakEventメソッドを事前に呼び出すことによってリスナーとして追加されたクラスでWeakEventManager メソッドを呼び出してイベントを転送します。
WeakEvent パターンに従う主な理由は、イベント ソースのオブジェクトの有効期間がイベント リスナーから独立している可能性がある場合です。
WeakEventManagerの中央イベント ディスパッチを使用すると、ソース オブジェクトの有効期間がリスナーを超えた場合でも、リスナーのハンドラーをガベージ コレクト (または手動で消去) できます。 これに対し、 += または同等の言語固有のイベント構文を使用する通常のイベント フックアップでは、まだ接続されている可能性があるソースがハンドラーへの強い参照を保持します。 これにより、リスナー参照がタイムリーにガベージ コレクションされないようにします。
ソースとリスナーの間のリレーションシップでこのパターンの使用が示唆される一般的な状況の 1 つは、データ バインディングのソースから送信される更新イベントの処理です。
WeakEvent パターンを使用して、アプリケーションの外部にあるイベントをリッスンできます。 必要なのは、その WeakEventManager を定義し、 ReceiveWeakEventでリッスン動作を提供し、 WeakEventManager を使用して、 +=ではなくハンドラー参照をアタッチすることだけです。
メソッド
| 名前 | 説明 |
|---|---|
| ReceiveWeakEvent(Type, Object, EventArgs) |
一元化されたイベント マネージャーからイベントを受信します。 |