以下のコードスニペットに対してParallel.ForEach(...)を実行したいのですが、2つの関数呼び出しがあります。どちらも同じブロック内で起こるはずです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'について詳しく説明できますか? –
この方法の1つで、いくつかの共通の状態を変更していますか?そして問題はParallel.ForEachではなく、パラレルで実行するという理論上の可能性があります。 –
GetEmpDetails(emp.EmployeeId)とProcessEmployeeDetails(empDetails)は共通の状態を変更していないので、Detials rがGetEmpDetails(emp.EmployeeId)から返されると、ProcessEmployeeDetails(empDetails)はその詳細を取得し、新しいテーブル。 – saklo