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예제는 약한 이벤트 패턴을 참조하세요.

생성자

Name Description
WeakEventManager()

파생 클래스의 생성자가 이니셜라이저로 사용할 때 기본 클래스 값을 초기화합니다.

속성

Name Description
Dispatcher

연결된 이 값을 DispatcherDispatcherObject 가져옵니다.

(다음에서 상속됨 DispatcherObject)
Item[Object]

지정된 원본에 대해 저장되는 데이터를 가져오거나 설정합니다.

ReadLock

기본 데이터 테이블에 IDisposable대한 읽기 잠금을 설정하고 .

WriteLock

기본 데이터 테이블에 IDisposable대한 쓰기 잠금을 설정하고 .

메서드

Name Description
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)

적용 대상

추가 정보