2017-12-12 13 views
0

: 이 등록을 취소 할 때 리스너에서 이벤트에 대한 레지스터에 필요할 때마다 약한 이벤트 패턴에서 RemoveHandler를 사용하는 것은 무엇입니까? <a href="https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/weak-event-patterns" rel="nofollow noreferrer">Microsoft doc</a> 당으로

약한 이벤트 패턴

사용할 수 있지만, 은 리스너는 명시 적으로 알 수 없습니다.

A sample code hereWeakEventManager를 사용하는 경우, 명시 적 RemoveHandler하지 원인 메모리 누수를 호출하지 것을 나타낸다.

그럼 내 질문은 무엇입니까? WeakEventManager 클래스에도 왜 RemoveHandler 메서드가 있습니까? 그것은 완전히 불필요한가요? 필요할 때?

+0

소스의 이벤트를 더 이상받지 않으려는 경우가 있습니다. –

+0

@SimonMourier, 어쩌면 당신은 그것을 적절한 대답으로 확장 할 수 있습니다. – Graviton

답변

2

완전히 필요하지 않습니까?

아니요. RemoveHandler 방법이없는 경우 어떻게 (명시 적으로) 구독 취소하겠습니까?

언제 필요합니까?

이벤트 구독에서 명시 적으로 구독 취소하려는 경우.

RemoveHandler에 전화하지 않으면 가비지 콜렉터가 수신기를 수집 할 때까지 이벤트 처리가 계속됩니다.