2017-11-22 7 views
2

私はたくさんのタスクを開始し、すべてのタスクが完了するまで待ちます。タスクを並列で実行する - Silverlight

この質問は、多かれ少なかれ、同じこの質問に次のとおりです。 Executing tasks in parallel

しかし、Task.WhenAllには同等の方法がないので答えはSilverlightのと同じではありません()。

これは動作するはずですが、私はエラー

スタート約束スタイルのタスクで呼び出されないことがあります。取得「スタートが約束スタイルのタスクで呼び出されないことがあります。」

 foreach (var displayThumbnailTask in displayThumbnailTasks) 
     { 
      displayThumbnailTask.Start(); 
     } 

     foreach (var task in displayThumbnailTasks) 
     { 
      await task; 
     } 

答えて

3

簡単なことのためのやや誤解を招くメッセージです。タスクは既に開始されています。

したがって、最初のループを省略することができます。

SilverlightにはTask.WhenAllがありませんが、Microsoft.Bcl.Asyncを使用している場合は、TaskEx.WhenAllと同じです。

await TaskEx.WhenAll(displayThumbnailTasks); 

Execute parallel tasks with async/await

+0

素晴らしいです。まさに私が探していたもの。 –

関連する問題