遅い Web サービスを並行して呼び出しています。サービスから情報を取得する必要があることに気付くまで、物事は素晴らしかった. しかし、値を戻す場所がわかりません。データベースに書き込めません。Parallel.ForEach を使用して呼び出されたメソッド内で HttpContext.Current が null のようです。
以下にサンプル プログラムを示します (文字列連結ではなく、遅い Web サービスを想像してください)。
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;
}
}
}