在.NET 4中,是否有与.NET 4.5的System.Threading.Tasks.Task.WhenAll()等效的功能
目标是将多个异步任务包装成一个单独的任务,该任务在所有组成任务完成时完成。
发布于 2012-07-17 05:41:54
我认为最接近.Net 4.0内置的是ContinueWhenAll()
。您可以将continuationAction
设置为简单的tasks => tasks
并使用返回的Task
。
出于性能方面的原因,您可能希望将其与TaskContinuationOptions.ExecuteSynchronously
一起使用。
发布于 2012-08-19 20:28:31
在.NET Framework4.0中,对于Visual Studio2010,WhenAll和WhenAny可以与已安装的AsyncCTP一起使用;对于Visual Studio2012,可以与Async Targeting Pack一起使用。
然后在TaskEx类型上提供WhenAll和WhenAny方法。
发布于 2012-07-17 05:18:50
尝试在另一个任务中等待Task.WaitAll()
。使用LINQ扩展方法ToArray
将IEnumerable<Task>
转换为Task[]
。
Task WhenAll(IEnumerable<Task> tasks)
{
return Task.Factory.StartNew(() => Task.WaitAll(tasks.ToArray()));
}
https://stackoverflow.com/questions/11512590
复制相似问题