如何等待不同类型的任务数组?

How can I Wait for Arrays of Tasks of different Types?

我有一个看起来很简单的问题,但我似乎无法在任何地方找到答案。

假设我有几个不同类型的任务数组,例如

Task<Dog>[] dogTasks = GetDogTasks();
Task<Cat>[] catTasks = GetCatTasks();
Task<Fish>[] fishTasks = GetFishTasks();

完成这些任务 WaitAll() 的最佳方法是什么?

WaitAll 应该可以解决您的问题。您有一系列任务,因此您应该从它们创建一个数组:

var tasks = new List<Task>();
tasks.AddRange(dogTasks);
tasks.AddRange(catTasks);
tasks.AddRange(fishTasks);
Task.WaitAll(tasks.ToArray());