Rx IObservable - 返回第一个IObservable流以获取值

时间:2012-09-06 17:54:56

标签: c# .net system.reactive

我正在创建所有相同T的两个(或更多)IObservable<T>。它们是从Task<IEnumerable<T>>生成的,其中一个可以比其他人更快地返回。我所关心的只是IObservable,它返回第一个值 - 这是我从那时开始使用的值。

我记得在剑桥参加Jon Skeet的演讲,他用非常简洁的方式使用TPL完成了这个,但我记不起来了!理想情况下,我会得到一个像这样的方法:

IObservable<T> PickFastestObservable<T>(IEnumerable<IObservable<T>> slowObservables);

但如果我必须直接在任务上完成,我可能会解决一些问题。

我正努力让自己得到一些我自信的东西。

干杯,

1 个答案:

答案 0 :(得分:5)

我认为你想要Observable.Amb例如

IObservable<T> fastest = slowObservables.Amb();