對任務的調用Wait()只會一直等到它完成,直到鏈中的最後一個繼續完成。我如何等待鏈中的最後一項任務?
我該如何等待鏈中的最後一個任務?我只是把整個鏈放在一個數組中,WaitAll放在它上面,但是ContinueWith接受一個委託,而不是一個我可以保留參考的任務。
對任務的調用Wait()只會一直等到它完成,直到鏈中的最後一個繼續完成。我如何等待鏈中的最後一項任務?
我該如何等待鏈中的最後一個任務?我只是把整個鏈放在一個數組中,WaitAll放在它上面,但是ContinueWith接受一個委託,而不是一個我可以保留參考的任務。
您可以使用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非僞代碼示例。
請參閱編輯 –
你看過'WaitAll'嗎? – cost
分享一些代碼?這對我們回答很有幫助。 –
將連續任務與原始數據一起存儲在一個數組中,並使用Task.WaitAll – Jcl