我怎样才能等待链中的最后一个任务
本文关键字:最后一个 任务 等待 | 更新日期: 2023-09-27 18:35:38
在任务上调用 Wait() 只会等到它完成,而不是等到链中的最后一个延续完成。
如何等待链中的最后一个任务? 我会简单地将整个链放在一个数组中并在其上 WaitAll,但 ContinueWith 需要一个委托,而不是我可以保留引用的任务。
您可以使用
Task.WaitAll()
,它接受一系列任务。
http://msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx
编辑:在这种情况下,您可以使用TaskFactory.ContinueWhenAll
。
方法在任务数组中的所有任务都已完成时执行继续操作委托,而不考虑其完成状态。
下面是一个伪代码示例:
Tasks[] tasks = GetTasks();
var finalTask = Task.Factory.ContinueWhenAll(tasks, completedTasks => {...});
finalTask.Wait();
MSDN 上有一个非伪代码示例。