并行foreach,根据行优先级在数据表中执行线程
本文关键字:数据表 执行 线程 优先级 foreach 并行 | 更新日期: 2023-09-27 18:15:55
我想在datatable
中执行线程,通过使用Parallel foreach
Priority Name
2 A
1 B
2 C
3 D
1 E
线程应该按照以下顺序执行(从优先级1到2,3…
只有优先级1的线程完成,优先级2的线程才应该启动)
EBACD
我不知道你为什么不想使用Parallel.ForEach
听起来你可以用一些PLINQ:
var result = dataTable
.AsEnumerable()
.Select(r => new { Priority = (int)r["Priority"], Name = (string)r["Name"] })
.AsParallel()
.OrderBy(r => r.Priority)
.Select(r => r.Name)
.ToList();