0

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

我记得参加了在剑桥举行的 Jon Skeet 演讲,他以一种非常简洁的方式使用 TPL 做到了这一点,但我不记得是如何做到的!理想情况下,我会得到这样的方法:

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

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

我正在努力让自己获得一些我有信心的东西。

干杯,

4

1 回答 1

5

我想你想要Observable.Amb例如

IObservable<T> fastest = slowObservables.Amb();
于 2012-09-06T17:57:26.043 回答