我有一个 List<someObject>
和扩展方法 someObject
称为 Process
.
考虑以下问题
private void processList(List<someObject> list)
{
Task.Factory.StartNew(() =>{
foreach(var instance in list)
{
instance.Process();
}});
}
但我想要多个 Task
s 在同一个列表上工作,为了避免锁定我克隆了列表并将其分成 2 个列表,然后开始 2 个单独的 Task
s来处理,速度几乎翻了一番。
我想知道 .NET 中是否有内置的东西可以帮助我以动态的方式和更清晰的语法实现这些东西?
最佳答案
您可以使用 TPL 的 Parallel.Foreach方法
var list = new List<SomeClass>();
Parallel.ForEach(list, instance =>
{
instance.Process();
});
关于c# - 以动态方式启动任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527090/