Parallel.Foreach 用于调用和使用多个函数

Parallel.Foreach for calling and consuming multiple function

我想为下面的代码片段做一个 Parallel.ForEach(... ),但是因为有两个函数调用 - 两者应该发生在同一个块中,因为第二个函数正在消耗值由第一个函数返回。我不知道该由谁来实现。基本上我想将下面的内容转换成 Parallel.ForEach(...)。提前致谢。

       List<Employee> employeeList = GetEmployees();

       foreach (var emp in employeeList)
            {
                var empDetails = GetEmpDetails(emp.EmployeeId);

                ProcessEmployeeDetails(empDetails);
            }

我已经尝试了下面的方法,它不起作用:

            Parallel.ForEach(employeeList, emp =>
            {
                var empDetails = GetEmpDetails(emp.EmployeeId);

                ProcessEmployeeDetails(empDetails);

            });

您似乎在幕后使用 EF 连接,并且似乎不是为此而设计的,并且执行多个数据检索是在同一个命令上执行的。您可以阅读更多相关信息 here。它也有解决方案:启用 MARS。

据我所知,Parallel.ForEach 没有问题,但一些基础内容的问题是 运行 开箱即用无法并行处理的。

P.S。更清楚一点:循环体内的两个函数将 运行 在同一个线程上。