Parallel.ForEach没有执行该方法

时间:2014-09-09 14:30:47

标签: c# .net multithreading foreach task-parallel-library

我正在尝试并行化以下For Each循环,它按预期工作。我从这开始:

foreach (DataRow drGroup in dsGroups.Tables["Table"].Rows)
         ProduceInvoices(drGroup);

并将其更改为:

Parallel.ForEach<DataRow>((IEnumerable<DataRow>)dsGroups.Tables["Table"].Rows, ProduceInvoices)

但是ProduceInvoices似乎不再执行,尽管dsGroup包含行。

请您提供任何指示和/或在哪里查看?

1 个答案:

答案 0 :(得分:7)

尝试使用AsEnumerable方法:

Parallel.ForEach<DataRow>(dsGroups.Tables["Table"].AsEnumerable(), ProduceInvoices);

Rows属性返回DataRowCollection,但不会实现IEnumerable<T>