我有 ASP.NET Core 6 API 的一部分,用于与另一个服务连接。这是一个批量操作(最多可能有 2 到 4 个操作),我想并行执行它。
为了实现这一目标,我正在尝试利用这样的任务:
List<Task> tasks = new List<Task>();
foreach(var item in items)
{
tasks.Add(PerformTask(item));
}
await Task.WhenAll(tasks);
foreach(var task in tasks)
{
task.Result;
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从每个任务获取结果时,“结果”属性不存在。
我缺少什么?
Gur*_*ron 10
Result是 generic 的属性Task<TResult>。如果PerformTask返回Task某种类型,则创建List<Task<TypeReturnedByPerformTask>>. 此外,您将能够在不.Result调用的情况下获取结果(有一个通用重载,Task.WhenAll它返回Task结果类型的数组):
List<Task<TypeReturnedByPerformTask>> tasks = ...;
// ...
TypeReturnedByPerformTask[] results = await Task.WhenAll(tasks);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
294 次 |
| 最近记录: |