WeakEventManager 類別

定義

為「弱式事件模式」中所使用的事件管理員提供基底類別。 管理員會針對也使用該模式的事件 (或回呼) 加入或移除接聽程式。

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 中央事件分派功能,即使來源物件持續存在,接聽程式的處理常式仍可進行垃圾收集。 相反地,使用 += 運算子的一般事件攔截會導致可能中斷連線的來源保留接聽程式參考。 這可防止接收者及時收集垃圾。

來源和接聽程式之間的存留期關聯性應該使用弱式事件模式的常見情況之一,就是處理來自資料系結的更新事件。

弱式事件模式也可用於回呼和一般事件。

給實施者的注意事項

如需自訂 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)

適用於

另請參閱