/ / Problemy z agregatorem zdarzeń za pomocą rozszerzeń reaktywnych - c #, mef, system.reactive, eventaggregator

Problemy z programem Event Aggregator za pomocą rozszerzeń reaktywnych - c #, mef, system.reactive, eventaggregator

Aby połączyć moje MEF aplikacji, używam agregatora zdarzeń znaleźć tutaj. Był idealny do dystrybucji danych do modułów, które rzeczywiście tego potrzebują.

Używam reaktywnych rozszerzeń i próbuję wykonać co następuje:

eventSubscription = MainApp.Events.GetEvent<UDPMessageIn>()
.BufferWithTime(TimeSpan.FromSeconds(1))
.Subscribe(x =>
{
// do something here...
});

Jednak agregator zdarzeń wygląda na zawieszony w metodzie publikowania na:

((ISubject<TEvent>)subject).OnNext(sampleEvent);

Zgaduję, że jest coś takiego w konstrukcji systemu .reactive lub agregatora, którego nie rozumiem.

Odpowiedzi:

1 dla odpowiedzi № 1

Jakie wątki działają zarówno na producencie, jak i na kliencie? Czy są oddzielne?

Próbować:

.BufferWithTime(TimeSpan.FromSeconds(1), Scheduler.TaskPool);

0 dla odpowiedzi nr 2

Okazało się, że jest to wątek, który nie był związany z Rx ani z agregatorem zdarzeń.

Zmiana jednego z moich wywołań interfejsu użytkownika na BeginInvoke powstrzymała go od zawieszenia, a to pozwoliło mi spojrzeć na właściwe fragmenty kodu ...