[英]Rx IObservable - return first IObservable stream to get a value
I am creating two (or more) IObservable<T>
s of all the same T. They have been generated from Task<IEnumerable<T>>
of which one can come back quicker than the others. 我正在创建两个(或多个)所有相同T的
IObservable<T>
。它们是从Task<IEnumerable<T>>
,其中一个可以比其他的返回更快。 All I care about is the IObservable
which returns the first value - this is the one that I use from then on. 我只关心返回第一个值的
IObservable
,这是我从那时起使用的那个值。
I remember attending a Jon Skeet presentation in Cambridge where he did exactly this using the TPL in a very neat way but I can't remember how! 我记得在剑桥参加Jon Skeet的演讲时,他以非常简洁的方式使用TPL做到了这一点,但我不记得怎么做! Ideally I'd get a method something like this:
理想情况下,我会得到如下所示的方法:
IObservable<T> PickFastestObservable<T>(IEnumerable<IObservable<T>> slowObservables);
But if I had to do it on the tasks directly, I could probably work something out. 但是,如果我必须直接在任务上执行此操作,则可能可以解决一些问题。
I'm struggling to get something up myself that I'm confident with. 我正在努力使自己充满信心。
Cheers, 干杯,
我想你想要Observable.Amb例如
IObservable<T> fastest = slowObservables.Amb();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.