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