在 C# 中將 Async 與 ForEach 結合使用
將 ForEach 方法用於非同步操作時,了解其局限性非常重要。在您的程式碼中:
db.Groups.ToList().ForEach(i => async { await GetAdminsFromGroup(i.Gid); });
您遇到的編譯器錯誤“當前上下文中不存在名稱‘Async’”,表示您不能直接在非非同步 lambda 表達式中使用 async。
解決方案:
要解決此問題,請將每個元素投影到非同步操作中並等待全部完成:
using (DataContext db = new DataLayer.DataContext()) { var tasks = db.Groups.ToList().Select(i => GetAdminsFromGroupAsync(i.Gid)); var results = await Task.WhenAll(tasks); }
這種方法的好處:
以上是如何在 C# 中正確使用 Async 和 ForEach?的詳細內容。更多資訊請關注PHP中文網其他相關文章!