2011-12-20 6 views
3

私がしようとしている:私はこの方法は、他の場所から使用されていることができないのでながらVSは、グループにメソッドを変換するために私に尋ねながらParallel.ForEachで関数を実行するには?

Parallel.ForEach(listOfNames, name => DoSometingWithName(name)); 

。だから、コードをコピーしてコピーしたくない。

方法はありますか?

+1

作成したコードは完全にコンパイルされます。あなたはより多くのコードを表示してください+あなたがコンパイラから得る完全なエラーメッセージを書いてください? – Svarog

+0

これはおそらくこの問題を引き起こしているReSharperです... – eugeneK

答えて

5

ReSharperが原因で、このメッセージは表示されませんでした。コンパイラエラーだと思った。周り

エレガントな作品は次のようになります。それはしかし、より読みやすいことを確認

Parallel.ForEach(listOfNames, DoSometingWithName); 

ありません。

+0

関数を単に呼び出す関数を渡すのではなく、代わりに関数を渡すだけです。 1つ少ないメソッド呼び出しがあるので、少し効率的です。 –

+2

これは回避策ではありません。これはReSharperがAlt-Enterを押して問題をすばやく修正できるようにする –

2

あなたは何を意味するのかはっきりしませんが、この構文を検索しましたか?

Parallel.ForEach(listOfNames, name => 
{ 
//Place your code here. 
DoSometingWithName(name); 
}); 
+0

これは、「グループメソッドの警告に変換します」というメッセージが表示される場所です... – eugeneK

+1

完全な警告メッセージを投稿できますか?このコードは警告なしで私の側で動作します.. Parallel.ForEach(source、currentString => { Console.WriteLine(currentString); } ); –

+0

"DoSomethingWithName"はどのように定義されていますか?それはプロパティではないですか? ;) –

関連する問題