使用 .NET 任务并行库,是否有一种内置方法可以等待所有正在运行的任务完成,而无需实际引用任务?
Task.WaitAny()
和 Task.WaitAll()
都需要一个 Task
实例数组。我想要的是类似 Task.WaitAll()
的东西,它不带任何参数,只是等待我的应用程序生成的所有任务完成。
如果没有,我会在我的框架中构建一些东西,但如果可以的话,我不想重新发明轮子。
最佳答案
我知道这并不能直接回答您的问题,但您可以更改架构,以便所有任务都创建为一个“主要”任务的子任务。等待这个“主要”任务将自动等待其所有子任务。
您可以像这样创建子任务:
Task.Factory.StartNew(
() => /* ... */,
TaskCreationOptions.AttachedToParent
);
当涉及子任务主题时,您可能会发现以下链接很有用:
关于.net - 是否可以等待未知任务完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180964/