![](/img/trans.png)
[英]Convert `IObservable<T>` to `IEnumerable<Task<T>>`?
[英]How to convert an IEnumerable<Task<T>> to IObservable<T>
是否有内置的方法将IEnumerable <Task <T >>转换为IObservable <T>。 顺序并不重要,只是我得到的东西,但最好是因为它们已经完成。
如果它还不存在,那么实现它的好方法是什么?
我相信这会奏效
tasks.Select(t => Observable.FromAsync(() => t))
.Merge();
每个任务都会以任何顺序将结果发送到可观察序列。 您可以订阅序列,并以这种方式对结果执行任何操作。
你可以这样做:
var query = tasks.ToObservable().SelectMany(task => task.ToObservable());
或者,或者,像这样:
var query =
from t in tasks.ToObservable()
from i in t.ToObservable()
select i;
我相信你所寻找的可能是Observable.Start()
然后,您可以将.Subscribe(callbackMethod)
附加到末尾,并在需要时指定回调。
从Rx 2.0开始,有一种更简单的方法:
var query = tasks.ToObservable().Merge();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.