WinRTで3つ以上のHTTPリクエストを同時に送信することは可能ですか?サーバーから複数のJSONドキュメントを読み込もうとしていますが、2回目の呼び出し後にHttpWebRequestが応答しません。これを示すサンプルスニペットは次のとおりです。
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
const string url = "http://www.bom.gov.au/fwo/IDV60901/IDV60901.94868.json";
const int iterations = 3;
var tasks = new List<Task>();
var ticks = DateTime.Now.Ticks;
for (var i = 0; i < iterations; i++)
{
// Create unique URL by appending a generated number.
var uniqueUrl = string.Format("{0}?v={1}", url, (i + ticks));
// Create the request.
var request = WebRequest.CreateHttp(uniqueUrl);
// Create the async task and store it for later.
var task = request.GetResponseAsync();
tasks.Add(task);
}
// Await all tasks in collection.
await Task.WhenAll(tasks);
Debugger.Break(); // <----- This will never break when iterations > 2
}
このコードを空白のMainPage.xaml.csに入れて、反復値を試してみてください。2に設定すると、機能します。それ以上のものは失敗します。
注::これをテストするときはFiddlerを使用しないでください。Fiddlerは何か面白いことをし、これらすべての接続を通過させます。方法も理由もわかりません。これは自分でテストできます。上記のコードをフィドラーを開いた状態で実行すると、成功します。
注::これは実際のコードではありません。この例は、問題を説明するためにのみ使用しています。