1
我想在datatable
通过使用滤波基于优先级的行执行线程执行线程Parallel foreach
并行的foreach在数据表中基于行优先
Priority Name
2 A
1 B
2 C
3 D
1 E
线程应在以下顺序(从优先级1开始执行2,3 ...
只有当优先级1个线程完成优先级2个线程应该启动)
EBACD
我想在datatable
通过使用滤波基于优先级的行执行线程执行线程Parallel foreach
并行的foreach在数据表中基于行优先
Priority Name
2 A
1 B
2 C
3 D
1 E
线程应在以下顺序(从优先级1开始执行2,3 ...
只有当优先级1个线程完成优先级2个线程应该启动)
EBACD
我不知道如何或为何你wan't使用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();
但你可能不会看到,除非你多大的性能提升正在处理数百万数据行。