다음을 통해 공유


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)

적용 대상

추가 정보