次の方法で共有


WeakEventManager クラス

定義

弱いイベント パターンで使用されるイベント マネージャーの基本クラスです。 このマネージャーは、WeakEvent パターンを使用するイベント (またはコールバック) 用のリスナーを追加または削除します。

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
派生

注釈

通常、イベント ソースにイベント リスナーに依存しないオブジェクトの有効期間がある場合は、弱いイベント パターンを使用します。 の中央イベント ディスパッチ機能 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)

指定されたソースのデータ リストから、アクティブでないリスナー エントリを削除します。 いくつかのエントリが実際にリストから削除された場合は、true を返します。

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)

適用対象

こちらもご覧ください