복합 WPF EventAggregator 구독이 손실됩니다
-
16-09-2019 - |
문제
Composite WPF 응용 프로그램에는 사용자가 컨트롤을 두 번 클릭 할 때 게시되는 이벤트가 있습니다. 모듈은 이벤트를 구독하고 필요할 때 조치를 수행합니다.
이 이벤트는 무작위로 작동을 멈추는 것 같습니다. 때로는 응용 프로그램을 실행할 때 문제없이 이벤트를 트리거 할 수 있습니다. 다른 경우에는 모듈이 이벤트 수신을 중단하기 전에 몇 번만 트리거 할 수 있습니다.
내가 디버거를 볼 때 Cal EventAggregator
여전히 이벤트가 있지만 이벤트에는 구독이 없습니다. 어떻게 EventAggregator
구독을 잃어 버리나요?
해결책
구독을 제거하는 쓰레기 수집가라는 것이 밝혀졌습니다. 내부를 읽어야하지만 교체했을 때
this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(SomeFunction);
~와 함께
this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(
SomeFunction, ThreadOption.UIThread, true);
작동하기 시작했습니다. UI 스레드 매개 변수는 내 문제가 아니었지만 다른 스레드의 경우 올바른 스레드에서 이벤트를 처리하는 것이 중요 할 수 있습니다.
제휴하지 않습니다 StackOverflow