我想圍繞如何在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
我誤解了你的問題嗎?迭代中的每個項目是否取決於前一項的成功完成? –