为每个C#正确调用并行

时间:2014-05-25 15:12:10

标签: c# .net

我有类似下面的方法签名:

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

我想在parallel.for中调用此方法但不确定我应该如何传递字符串参数?

目前我的电话如下:

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

调用这两个参数传递的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

MyMethod只应采用MyObject类型的一个参数(而不是List<MyObject>)。

所以应该有这个签名

private void MyMethod(MyObject myObjects, string test)

之后,如果要添加附加参数,只需添加包装器

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