C# での ForEach での Async の使用
非同期操作で ForEach メソッドを使用する場合は、その制限を理解することが重要です。コード内:
db.Groups.ToList().ForEach(i => async { await GetAdminsFromGroup(i.Gid); });
発生したコンパイラ エラー「現在のコンテキストには名前 'Async' が存在しません」は、非同期ラムダ式内で async を直接使用できないことを示しています。
解決策:
これを回避するには、各要素を非同期操作を実行し、すべてが完了するのを待ちます:
using (DataContext db = new DataLayer.DataContext()) { var tasks = db.Groups.ToList().Select(i => GetAdminsFromGroupAsync(i.Gid)); var results = await Task.WhenAll(tasks); }
このアプローチの利点:
以上がC# で ForEach で Async を正しく使用する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。