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();
但你可能不會看到,除非你多大的性能提升正在處理數百萬數據行。