Я хочу сделать Parallel.ForEach (...) для сниппленного кода, однако, поскольку есть два вызова функций - оба должны произойти в том же блоке, что и второй funtion потребляет значение, возвращаемое первой функцией. Я не знаю, кому это удалось. В принципе, я хочу преобразовать нижеследующее в 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);
});
Что не означает? что происходит? можете ли вы подробно описать «GetEmpDetails» и «ProcessEmployeeDetails»? –
Вы изменяете какое-то общее состояние внутри одного из этих методов? Тогда проблема не в Parallel.ForEach, а в теоретической возможности запускать их параллельно. –
GetEmpDetails (emp.EmployeeId) и ProcessEmployeeDetails (empDetails) не изменяют какое-либо общее состояние ... поэтому после того, как detials r вернутся из GetEmpDetails (emp.EmployeeId), ProcessEmployeeDetails (empDetails) принимает эти данные и продолжает работать, сохраняя данные в новую таблицу. – saklo