【发布时间】:2014-09-09 14:30:47
【问题描述】:
我正在尝试并行化以下按预期工作的 For Each 循环。我从这个开始:
foreach (DataRow drGroup in dsGroups.Tables["Table"].Rows)
ProduceInvoices(drGroup);
并将其更改为:
Parallel.ForEach<DataRow>((IEnumerable<DataRow>)dsGroups.Tables["Table"].Rows, ProduceInvoices)
然而ProduceInvoices 似乎不再被执行,尽管 dsGroup 包含行。
请你给我任何指示和/或在哪里看?
【问题讨论】:
-
您应该抛出了某种无效的强制转换异常,您是否有一个空的
catch在某个地方吞下了错误?同时打开breaking on handled exceptions 也有助于追踪这类事情。 -
@ScottChamberlain - 这是一个写得很糟糕的遗留应用程序,所以很可能有奇怪的空
catch,否则会发现这一点。下次我会尝试打破已处理的异常,谢谢。
标签: c# .net multithreading foreach task-parallel-library