我有 C# 列表,其中包含大约 8000 个项目(文件路径)。我想在所有这些项目上并行运行一个方法。为此,我有以下 2 个选项:
1)手动将列表划分为小块(例如每个 500 大小)并为这些小列表创建操作数组,然后调用 Parallel.Invoke 如下所示:
var partitionedLists = MainList.DivideIntoChunks(500);
List<Action> actions = new List<Action>();
foreach (var lst in partitionedLists)
{
actions.Add(() => CallMethod(lst));
}
Parallel.Invoke(actions.ToArray())
2)第二个选项是运行 Parallel.ForEach 如下
Parallel.ForEach(MainList, item => { CallMethod(item) });
- 这里最好的选择是什么?
- Parallel.Foreach 如何将列表分成小块?
请建议,提前谢谢。