我有一个n个任务的列表,我想要并行地,异步地执行。
每个并行运行的任务都可以有一个或多个嵌套任务。
我还需要等待并分析每个任务的返回结果。 仅当所有任务成功执行(例如,它们返回“真”)时,整个操作才成功。
实际上,这是一项交易操作,我需要等待许多任务成功完成。
问题是每个任务可能需要1-3个小时才能完成(某些任务可能只需要几分钟,而其他任务则需要数小时) 整个操作可能需要一整天的时间。
我的问题:
- 使用任务并行库,这种方法是否可行且可行?
- 还有什么 如果其中一个任务超时并且无法向其报告,则会发生 妈妈的任务?
- 图书馆可以处理任务没有的情况 只有嵌套,但alos需要很长时间才能完成?
醇>
修改 我发现this blog post关于取消任务,特别是长时间运行的任务。 也许对其他人也有用。
答案 0 :(得分:2)
您在寻找Task.WaitAll
吗?
如果任务实际超时(即故障),则会抛出AggregateException
。请注意,WaitAll
将等待所有任务在返回之前以某种方式完成,即使某些任务提前失败也是如此。
我没有理由相信TPL对需要很长时间的任务有任何问题。