【发布时间】:2010-12-06 10:05:53
【问题描述】:
比方说,我有 1000 个 observables。现在我想将所有事件聚合到一个新的 observable 中,一旦所有其他事件都发送了一个事件,它就会触发 OnNext。使用 Rx 的最佳方法是什么?
更新: Rx 论坛上有一些很好的反馈,尤其是 Dave Sexton。他展示了如何创建一个采用多个可观察对象的 Zip 扩展方法:http://social.msdn.microsoft.com/Forums/en-US/rx/thread/daaa84db-b560-4eda-871e-e523098db20c/
【问题讨论】:
-
这1000个observables的类型都是一样的吗?你认为聚合的 observable 是什么类型的?
-
1000 个 observables 都是同一个类型,新的聚合可以是一个新的类型。例如。事件变为 AggregateEvent。
-
您只想合并它们的最新值吗? IE。如果 Observable a 触发了两个事件,而 Observable b 只触发了一个,你想将 a 的第一个事件或 a 的最后一个事件与 b 的事件聚合吗?
-
@Richard Hein 让我们从 a 中的最后一个事件开始,因为我们可以假设它们按顺序到达,即所有 1000 个事件在一些可观察对象触发新事件之前到达。但是,将它们配对当然会更好,这样第一个 a 事件将与第一个 b 事件一起到达。
-
我想你最好在 Rx 论坛上问这个问题。
标签: c# .net system.reactive