2017-11-22 15 views
2

많은 작업을 시작하고 모든 작업이 완료되기를 기다리고 싶습니다.병렬 작업 실행 - Silverlight

이 질문은 더 많거나 적은 동일이 질문에 있습니다 : Executing tasks in parallel

그러나, Task.WhenAll에 상응하는 방법이 없기 때문에 대답은 실버 라이트 동일하지 않습니다().

이 작동합니다,하지만 난

시작을 약속 스타일의 작업에 호출 할 수 없습니다 수있는 오류를 얻을.

 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

우수한. 정확히 내가 무엇을 찾고 있었는지. –