您几乎永远都不要
Task直接使用构造函数。在您的情况下,该任务只会触发您迫不及待的实际任务。
您只需调用
DoWork并取回任务,将其存储在列表中,然后等待所有任务完成即可。含义:
tasks.Add(DoWork());// ...await Task.WhenAll(tasks);
但是,异步方法将同步运行,直到第一次等待未完成的任务。如果您担心该部分花费的时间太长,请使用
Task.Run将其卸载到另一个
ThreadPool线程,然后
将该 任务存储在列表中:
tasks.Add(Task.Run(() => DoWork()));// ...await Task.WhenAll(tasks);



