我有List<someObject>
以及someObject
的{{1}}扩展方法。
考虑以下
Process
但我希望多个private void processList(List<someObject> list)
{
Task.Factory.StartNew(() =>{
foreach(var instance in list)
{
instance.Process();
}});
}
在同一个列表上工作,以避免锁定我克隆列表并将其分成2个列表,然后启动2个单独的Task
来处理,速度有差不多翻了一倍。
我想知道.NET中是否有内置功能可以帮助我以动态方式和更清晰的语法实现这些功能?
答案 0 :(得分:7)
您可以使用TPL的Parallel.Foreach方法
var list = new List<SomeClass>();
Parallel.ForEach(list, instance =>
{
instance.Process();
});