Parallel.Foreach:所有线程已完成但并非所有线程都执行了所有底层函数

时间:2013-06-25 12:39:44

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

如果问题看似模糊或重复,我会提前道歉。

我正在尝试使用Parallel.ForEach

在对象列表上执行一组函数
Parallel.Foreach(listOfObjects,obj=>
{
    ProcessEachObject(obj);
});

ProcessEachObject函数调用几个函数来处理对象。这包括与DB(DB2通过ADO.NET)交互的功能

ProcessEachObject(ClassSample obj)
{
    subProcess1();
    insertIntoDB();
    subProcess2();
    subProcess3();
    updateDB();       //row inserted above is updated
}

当我使用foreach循环时,我看到所有行都进行了更新。但是,当我使用Parallel.Foreach时,几乎有一半的行没有更新。我在某个地方错过了同步吗?内部的线程上的查询是否未同步?请帮忙

0 个答案:

没有答案