Event Aggregator使用Reactive Extensions的问题

时间:2010-11-08 14:21:03

标签: c# mef system.reactive eventaggregator

要关联我的MEF应用程序,我正在使用事件聚合器found here。它非常适合将数据分发到实际需要它的模块中。

我正在更多地使用反应式扩展,我一直在尝试执行以下操作:

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

但是,事件聚合器似乎在发布方法中挂起:

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

我猜测有关system.reactive或聚合器设计的一些内容我并不完全理解。有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

生产者和消费者都在运行什么线程?它们是分开的吗?

尝试:

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

答案 1 :(得分:0)

结果证明这是一个与Rx或事件聚合器无关的线程问题。

将我的一个UI调用更改为BeginInvoke使其停止挂起,这让我看到了正确的代码......