2014-12-30 16 views
0

對任務的調用Wait()只會一直等到它完成,直到鏈中的最後一個繼續完成。我如何等待鏈中的最後一項任務?

我該如何等待鏈中的最後一個任務?我只是把整個鏈放在一個數組中,WaitAll放在它上面,但是ContinueWith接受一個委託,而不是一個我可以保留參考的任務。

+1

你看過'WaitAll'嗎? – cost

+2

分享一些代碼?這對我們回答很有幫助。 –

+0

將連續任務與原始數據一起存儲在一個數組中,並使用Task.WaitAll – Jcl

回答

4

您可以使用Task.WaitAll(),它接受一系列任務。

http://msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx

編輯:在這種情況下,你可以使用TaskFactory.ContinueWhenAll

ContinueWhenAll方法在任務數組中的所有任務完成時執行continuationAction委託,無論其完成狀態如何。

這裏是一個僞代碼示例:

Tasks[] tasks = GetTasks(); 
var finalTask = Task.Factory.ContinueWhenAll(tasks, completedTasks => {...}); 
finalTask.Wait(); 

有上MSDN非僞代碼示例。

+0

請參閱編輯 –