2016-07-26 8 views
1

以下にサンプルコードを示します。parallel.invoke内でメソッドを動的に追加する方法

  string[] str = new string[10]; 
      str[0] = "A"; 
      str[1] = "B"; 
      .... and so on. 

      Parallel.Invoke(() => 
      { 
       foreach(string temp in str) 
       { 
       MainFunc(temp); 
       } 

      }); 

「MainFunc」メソッドを動的に10回呼び出すとします。したがって、私はforeachループを使用しました。しかし、メソッドは1回だけ実行されています。助けてください。ありがとうございます。

+3

'Parallel.ForEach()'を使用してください。 –

+0

ありがとうございました。出来た。 :) –

答えて

0

Parallel.Executeは、おそらくでは、提供の各アクションを実行しますパラレル。この場合、あなたは1つのアクションだけを持っているので、それはだけ回実行されます。

あなたは各strに平行呼び出しを探しているなら、これを使用しています。

Parallel.ForEach(str, (temp) => 
{ 
     MainFunc(temp); 
} 
0

Parallel.Invokeの使用方法が間違っています。このメソッドは、1つまたは複数のActionを受け取り、Parrallelでそれらを実行します。 1つのアクションだけを送信しているので、10の反復は順番に実行されます。しかし、あなたのMainFuncは、文字列配列の長さに基づいて(10回を実行する必要があり

をパラレルに上記のロジックを実行するには、Parallel.ForEach()を使用します。

Parallel.ForEach(str, (temp) => MainFunc(temp)); 
関連する問題