Gio*_*uri 4 c# multithreading task-parallel-library parallel.foreach
我有一个有序列表,如[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 =>
{
});
}
Run Code Online (Sandbox Code Playgroud)
3是小清单的长度.
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |