我像这样调用异步方法:
foreach (var item in someList)
{
item.someValue = asdf.Where(() => SomeMethod(item)).FirstOrDefaultAsync();
}
Run Code Online (Sandbox Code Playgroud)
我如何让它异步工作?我想等待所有的结果。我正在使用.Net Core 3.1
Ste*_*ary 12
对于异步并发,最好的方法是使用await Task.WhenAll:
var tasks = someList.Select(async item =>
{
item.someValue = await asdf.Where(() => SomeMethod(item)).FirstOrDefaultAsync();
});
await Task.WhenAll(tasks);
Run Code Online (Sandbox Code Playgroud)
但是,看起来您可能正在使用实体框架。在这种情况下,您需要注意实体框架不支持同一上下文上的多个并发查询。您需要一次运行一个查询,或者使用多个数据库上下文。
| 归档时间: |
|
| 查看次数: |
12535 次 |
| 最近记录: |