我正在尝试并行化以下For Each循环,它按预期工作。我从这开始:
foreach (DataRow drGroup in dsGroups.Tables["Table"].Rows)
ProduceInvoices(drGroup);
并将其更改为:
Parallel.ForEach<DataRow>((IEnumerable<DataRow>)dsGroups.Tables["Table"].Rows, ProduceInvoices)
但是ProduceInvoices
似乎不再执行,尽管dsGroup包含行。
请您提供任何指示和/或在哪里查看?
答案 0 :(得分:7)
尝试使用AsEnumerable
方法:
Parallel.ForEach<DataRow>(dsGroups.Tables["Table"].AsEnumerable(), ProduceInvoices);
Rows
属性返回DataRowCollection
,但不会实现IEnumerable<T>
。