0

如果问题似乎含糊不清或重复,我会提前道歉。

我正在尝试使用 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 时,将近一半的行没有更新。我在某个地方缺少同步吗?查询是否在内部线程上不同步?请帮忙

4

0 回答 0