WeakEventManager クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
弱いイベント パターンで使用されるイベント マネージャーの基本クラスを提供します。 マネージャーは、パターンも使用するイベント (またはコールバック) のリスナーを追加および削除します。
public ref class WeakEventManager abstract : System::Windows::Threading::DispatcherObject
public abstract class WeakEventManager : System.Windows.Threading.DispatcherObject
type WeakEventManager = class
inherit DispatcherObject
Public MustInherit Class WeakEventManager
Inherits DispatcherObject
- 継承
- 派生
注釈
通常、イベント ソースにイベント リスナーに依存しないオブジェクトの有効期間がある場合は、弱いイベント パターンを使用します。
WeakEventManagerの中央イベント ディスパッチ機能を使用すると、ソース オブジェクトが永続化された場合でも、リスナーのハンドラーをガベージ コレクションできます。 これに対し、 += 演算子を使用した通常のイベント フックアップでは、切断された可能性のあるソースがリスナーへの参照を保持します。 これにより、受信側がタイムリーにガベージ コレクションされるのを防ぐことができます。
ソースとリスナー間の有効期間の関係で弱いイベント パターンを使用する必要がある一般的な状況の 1 つは、データ バインディングからの更新イベントの処理です。
弱いイベント パターンは、コールバックや通常のイベントにも使用できます。
注意 (実装者)
カスタム WeakEventManagerの例については、「 弱いイベント パターン」を参照してください。
コンストラクター
| 名前 | 説明 |
|---|---|
| WeakEventManager() |
派生クラスのコンストラクターによって初期化子として使用されるときに、基底クラスの値を初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Dispatcher |
このDispatcherが関連付けられているDispatcherObjectを取得します。 (継承元 DispatcherObject) |
| Item[Object] |
指定したソースに格納されるデータを取得または設定します。 |
| ReadLock |
基になるデータ テーブルの読み取りロックを確立し、 IDisposableを返します。 |
| WriteLock |
基になるデータ テーブルの書き込みロックを確立し、 IDisposableを返します。 |
メソッド
| 名前 | 説明 |
|---|---|
| CheckAccess() |
呼び出し元のスレッドがこの DispatcherObjectにアクセスできるかどうかを判断します。 (継承元 DispatcherObject) |
| DeliverEvent(Object, EventArgs) |
各リスナーに管理されているイベントを配信します。 |
| DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) |
指定されたリスト内の各リスナーに、管理されているイベントを配信します。 |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetCurrentManager(Type) |
指定された型に使用される WeakEventManager 実装を返します。 |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| NewListenerList() |
イベントのリスナーを格納する新しいオブジェクトを返します。 |
| ProtectedAddHandler(Object, Delegate) |
指定したデリゲートを、指定したソースのイベント ハンドラーとして追加します。 |
| ProtectedAddListener(Object, IWeakEventListener) |
指定されたリスナーを、管理対象のイベントの指定されたソースに追加します。 |
| ProtectedRemoveHandler(Object, Delegate) |
指定したソースから、以前に追加したハンドラーを削除します。 |
| ProtectedRemoveListener(Object, IWeakEventListener) |
指定されたソースから、以前に追加したリスナーを削除します。 |
| Purge(Object, Object, Boolean) |
指定されたソースのデータ リストから非アクティブなリスナー エントリを削除します。 一部のエントリがリストから実際に削除された場合に |
| Remove(Object) |
指定したソースのすべてのリスナーを削除します。 |
| ScheduleCleanup() |
基になるリスナー リスト内の未使用のエントリの消去を、優先順位の低いスレッドで実行するように要求します。 |
| SetCurrentManager(Type, WeakEventManager) |
指定したマネージャーの種類の現在のマネージャーを設定します。 |
| StartListening(Object) |
派生クラスでオーバーライドされると、管理されているイベントのリッスンを開始します。 StartListening(Object) メソッドが最初に呼び出された後、指定されたソースから関連するイベントが処理されるたびに、マネージャーは DeliverEvent(Object, EventArgs) または DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) を呼び出す状態になります。 |
| StopListening(Object) |
派生クラスでオーバーライドされると、指定されたソースで管理対象のイベントのリッスンを停止します。 |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
| VerifyAccess() |
呼び出し元のスレッドがこの DispatcherObjectにアクセスできるように強制します。 (継承元 DispatcherObject) |