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 중앙 이벤트 디스패치 기능을 사용하면 원본 개체가 유지되더라도 수신기의 처리기를 가비지 수집할 수 있습니다. 반면 연산자를 사용하는 일반 이벤트 연결은 +=
잠재적으로 연결이 끊긴 원본이 수신기에 대한 참조를 보유하게 합니다. 이렇게 하면 수신기가 적시에 가비지 수집되지 않습니다.
원본과 수신기 간의 수명 관계가 약한 이벤트 패턴을 사용해야 하는 일반적인 상황 중 하나는 데이터 바인딩에서 오는 업데이트 이벤트를 처리하는 것입니다.
약한 이벤트 패턴은 콜백 및 일반 이벤트에도 사용할 수 있습니다.
구현자 참고
사용자 지정 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) |
적용 대상
추가 정보
.NET