Silverlight で複数の非同期タスクを実行する必要があります。
サードパーティのパッケージのドキュメントには、使用できると記載されています
await Task.WhenAll()
残念ながらTask.WaitAll()
、Silverlight しか持っておらず、待ちきれません。使用しようとするとデッドロックが発生します(すべてがフリーズするためだと思います)
非同期メソッドで使用する適切なパターンは何ですか?
Silverlight で複数の非同期タスクを実行する必要があります。
サードパーティのパッケージのドキュメントには、使用できると記載されています
await Task.WhenAll()
残念ながらTask.WaitAll()
、Silverlight しか持っておらず、待ちきれません。使用しようとするとデッドロックが発生します(すべてがフリーズするためだと思います)
非同期メソッドで使用する適切なパターンは何ですか?
あなたの質問を正しく理解すれば、TaskFactory.ContinueWhenAllを使用して同様の動作を試みることができると思います。例:
var task1 = Task.Factory.StartNew(() =>
{
Thread.Sleep(1000);
return "dummy value 1";
});
var task2 = Task.Factory.StartNew(() =>
{
Thread.Sleep(2000);
return "dummy value 2";
});
var task3 = Task.Factory.StartNew(() =>
{
Thread.Sleep(3000);
return "dummy value 3";
});
Task.Factory.ContinueWhenAll(new[] { task1, task2, task3 }, tasks =>
{
foreach (Task<string> task in tasks)
{
Console.WriteLine(task.Result);
}
});