【发布时间】:2014-05-15 23:47:59
【问题描述】:
如果任何正在运行的任务引发异常,我想让 Task.WaitAll() 中断,这样我就不必等待 60 秒才能完成。我如何实现这种行为?如果 WaitAll() 无法实现,是否还有其他 c# 功能或解决方法?
Task task1 = Task.Run(() => throw new InvalidOperationException());
Task task2 = ...
...
try
{
Task.WaitAll(new Task[]{task1, task2, ...}, TimeSpan.FromSeconds(60));
}
catch (AggregateException)
{
// If any exception thrown on any of the tasks, break out immediately instead of wait all the way to 60 seconds.
}
【问题讨论】:
-
一位反对者能解释一下吗?这是一个合理的要求。
标签: c# task-parallel-library task async-await