私は、遅いウェブサービスを並行して呼びます。私はサービスから何らかの情報を得る必要があることがわかって初めて、物事は素晴らしかったです。しかし、どこに値を戻すかわかりません。私はデータベースに書き込むことができません、HttpContext.Currentは、Parallel.ForEachを使用して呼び出されたメソッド内でヌルのように見えますParallel.ForEachから戻り値を収集するにはどうすればよいですか?
以下は、サンプルプログラムです(あなたの考えでは、文字列連結)
using System;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
WordMaker m = new WordMaker();
m.MakeIt();
}
public class WordMaker
{
public void MakeIt()
{
string[] words = { "ack", "ook" };
ParallelLoopResult result = Parallel.ForEach(words, word => AddB(word));
Console.WriteLine("Where did my results go?");
Console.ReadKey();
}
public string AddB(string word)
{
return "b" + word;
}
}
}
Parallel.ForEach' 'の異なる過負荷は、あなたが何をしたいことがありますhttp://msdn.microsoft.com/en-us/library/ dd991486.aspx –
残念ながら、それはあなたがそうすることができるものではありません。 'Parallel.Foreach()'は戻り値を記録するために構築されたものではありません。しかし、あなたの 'AddB'関数で' ref'パラメータを使うことをお勧めします。そうするかもしれない。 –
@PhillipSchmidt:この例で使用されているオーバーロードではありません... –