2010-11-08 19 views
2

Pour lier mon application MEF, j'utilise l'agrégateur d'événements found here. Il a été parfait pour distribuer des données dans des modules qui en ont réellement besoin.Problèmes avec l'agrégateur d'événements à l'aide d'extensions réactives

Je suis de plus en utilisant les extensions réactives et j'ai essayé de faire ce qui suit:

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

Cependant, l'agrégateur d'événements semble se bloquer dans la méthode Publier sur:

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

Je suppose qu'il y a quelque chose à propos de la conception de system.reactive ou de l'agrégateur que je ne comprends pas complètement. Quelqu'un a des idées?

+0

Je ne suis pas familier avec Reactive Extensions, mais je vais regarder cette question apprendre encore plus. Btw, qu'est-ce que MEF? – JeremyWeir

+0

Cadre d'extensibilité géré. http://mef.codeplex.com/. Son construit en .NET 4.0 – Tim

Répondre

0

Il est avéré être un problème de filetage sans lien avec Rx ou l'agrégateur d'événements.

Changer l'un de mes UI à Invoque BeginInvoke l'a arrêté de traîner et cela m'a fait regarder les bons bits de code ...

1

Sur quels threads le producteur et le consommateur s'exécutent-ils? Sont-ils séparés?

Essayez:

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