如果问题似乎含糊不清或重复,我会提前道歉。
我正在尝试使用 Parallel.ForEach 在对象列表上执行一组函数
Parallel.Foreach(listOfObjects,obj=>
{
ProcessEachObject(obj);
});
ProcessEachObject 函数调用几个函数来处理对象。这还包括与 DB(通过 ADO.NET 的 DB2)交互的函数
ProcessEachObject(ClassSample obj)
{
subProcess1();
insertIntoDB();
subProcess2();
subProcess3();
updateDB(); //row inserted above is updated
}
当我使用 foreach 循环时,我看到所有行中都完成了更新。但是,当我使用 Parallel.Foreach 时,将近一半的行没有更新。我在某个地方缺少同步吗?查询是否在内部线程上不同步?请帮忙