【发布时间】:2016-01-02 05:56:52
【问题描述】:
我有一个场景,我必须为列表中的每个项目调用相同的数据库存储过程。我不想使用 foreach,因为它会降低性能,哪个是并行 foeach 或 async/await foreach 的最佳选择?
下面是示例代码
public Task<List<object>> CallMethod()
{
foreach(var obj in input)
{
List.Add(await Task.Run(() =>CallDatabase(obj)));
}
return List;
}
public CallDatabase(object)
{
//Code to call DB
}
从 DB 接收到的所有对象都是独立的。
经过一些研究,我计划使用异步调用,这会提高性能吗?
【问题讨论】:
-
async将如何提供帮助 - 在您继续之前,您不需要等待结果返回吗? -
不,我不必等待结果。一旦我从数据库中获取记录,我将构建对象并添加到列表中。客户端将收到从 DB 生成的对象列表。所有对象都是独立的。
标签: c# asynchronous foreach