Performing ForEach
本文关键字:ForEach Performing | 更新日期: 2023-09-27 18:10:51
我需要提高ForEach的性能。
//Pseudocode
foreach (item i item in items)
{
//Call service to open DB conn and get data
}
在此循环中调用一个服务,该服务打开会话sqlserver,从数据库获取数据并关闭会话,因此对于每个迭代。我能做什么?谢谢。
好吧,这听起来像一个完美的使用Parallel.ForEach
-那么你试过吗?
Parallel.ForEach(queries, query => {
// Perform query
});
您可能想要指定并行度等级别的选项,并确保您的连接池支持尽可能多的连接。当然,测量前后的性能,以确保它确实有帮助。
也许你可以在每次迭代中启动一个新线程:
foreach (item i in collection)
{
Thread t = new Thread(functionToCall);
t.Start()
}
functionToCall()
{
database = openSQLSession();
data databaseData = database.getData();
dataCollection.Add(databaseData);
closeSQLSession();
}
当然这是一个简单的例子和漂亮的伪代码,但我希望你能得到它的要点?