有序并行执行

乔基·纳库里

我有一个类似的有序列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]我将其传递给Parallel.ForEach声明。我能以某种方式实现以下存储桶执行顺序吗:处理前3个项目[1, 2, 3],其中存储桶本身不是强制性的,[2, 1, 3]例如。然后处理下3个项目[4, 5, 6],等等?

现在住

我不确定您可以直接执行此操作。但我建议您将输入列表分成较小的列表,然后可以使用来处理每个子列表Parallel.Foreach

List<int> fruits = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
List<List<int>> ls = new List<List<int>>();
for (int i = 0; i < fruits.Count; i += 3)
{
    ls.Add(fruits.GetRange(i, Math.Min(3, fruits.Count - i)));
}
foreach (List<int> group in ls)
{
    Parallel.ForEach(group, fruit =>
    {
    });
}

小清单的长度是3。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章