【发布时间】:2019-03-11 12:14:26
【问题描述】:
我想知道是否可以在每次 Observable 滴答声时启动一个任务,并使用这些任务的结果继续管道。结果的顺序无关紧要。我正在使用 C#。
linksObservable
.Select(url=> downloadTask(url))
...
上面的代码将启动任务以下载 url,但我如何获得可用的结果(即 downloadTask 已完成)。另一个考虑因素是来自任务的Exceptions。任何异常都不应影响其余任务。
【问题讨论】:
-
只是想知道
linksObservable.Select(url=> Observable.Return(await downloadTask(url))).Switch()是否是答案。 -
没有。在并发任务的情况下,
Switch将取消较早的任务。如果您将Switch替换为Merge将起作用,并且相当于彼得的答案。
标签: task observable system.reactive