2014-05-25 22 views
0

我有類似下面的方法簽名:調用正確的並行對於每一個C#

private void MyMethod(List<MyObject> myObjects, string test) 

我要調用中的每一個的Parallel.For這種方法,但不知道我應該如何傳遞字符串參數?

目前我的電話是這樣的:

Parallel.ForEach(myObjects, new ParallelOptions { MaxDegreeOfParallelism = 5}, MyMethod); 

什麼叫此同時傳遞參數的正確方法是什麼?

+0

有什麼用'test'在循環如果你是以非平行的方式寫作的話? – shahkalpesh

回答

3

MyMethod應該只取一個MyObject(而不是List<MyObject>)類型的參數。

所以它應該有這個簽名

private void MyMethod(MyObject myObjects, string test) 

之後,你只需要添加一個包裝,如果你想添加的其它附加參數

Parallel.ForEach(myObjects, 
new ParallelOptions { MaxDegreeOfParallelism = 5}, 
x => MyMethod(x,test));