我想通过使用datatable
基于优先级过滤行来在Parallel foreach
中执行线程
Priority Name
2 A
1 B
2 C
3 D
1 E
线程应按以下顺序执行(从优先级1开始到2,3 ......
只有优先级1线程完成优先级2线程才应该开始)
EBACD
答案 0 :(得分:1)
我不确定你是怎么或为什么不使用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();
但是,除非您正在使用数百万个数据行,否则您可能不会看到太多的性能提升。