我是异步世界中的新成员。关于你提到的静态方法(从https://stackoverflow.com/a/25733275/1596974):带有超时和结果的多个异步任务
static async Task<TResult[]> WhenAll<TResult>(IEnumerable<Task<TResult>> tasks, TimeSpan timeout)
{
var timeoutTask = Task.Delay(timeout).ContinueWith(_ => default(TResult));
var completedTasks =
(await Task.WhenAll(tasks.Select(task => Task.WhenAny(task, timeoutTask)))).
Where(task => task != timeoutTask);
return await Task.WhenAll(completedTasks);
}
我应该如何使用它,以便检索这些任务的结果? 只是要清楚,我需要在这里实现基本上是这样的:
- 对于我打电话给几家船供应商,以便从他们那里得到不同的运费每一项任务。
- 将来自所有运输供应商的响应汇总到一个大的运费清单中。 有时一个(或多个)运输供应商可能停运。因此,我需要从已成功完成的任务中检索运费,然后跳过那些失败的任务。 我希望我很清楚。