我想围绕如何在foreach循环中处理多个异步/等待调用。我有大约20,000行由foreach循环处理的数据。大约我的代码是:在foreach循环迭代中多次异步/等待调用
foreach (var item in data)
{
if (ConditionA(item))
{
if (ConditionAB(item));
{
await CreateThingViaAPICall(item)
}
else
{
var result = await GetExistingRecord(item);
var result2 = await GetOtherExistingRecord(result);
var result3 = await GetOtherExistingRecord(result2);
//Do processing
...
await CreateThingViaAPICall();
}
}
... and so on
}
我看过很多帖子说要使用异步在一个循环是建立任务列表,然后使用Task.WhenAll的最佳途径。在我的情况下,我有任务相互依赖作为每个迭代的一部分。在这种情况下,如何构建要执行的任务列表?
你有什么问题? –
如果我没有弄错,在foreach中使用异步/等待的推荐方法是首先构建任务列表,然后调用Task.WhenAll。我的问题是,我有多个任务循环的每个迭代相互依赖。在这种情况下,我如何建立一个任务列表来等待? – Jacob
我误解了你的问题吗?迭代中的每个项目是否取决于前一项的成功完成? –