我想datatable
通过使用基于优先级过滤行来执行线程Parallel foreach
Priority Name
2 A
1 B
2 C
3 D
1 E
线程应按以下顺序执行(从优先级 1 到 2,3...
仅当优先级 1 线程完成时才应启动优先级 2 线程)
EBACD
我想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();
但是,除非您处理数百万行数据,否则您可能不会看到太多的性能提升。