这是因为tasks.Add(inner)之后执行的await Task.WhenAll(tasks).要回答您的问题,首先需要清除任务#3和任务内部之间的关系.IMO的内部任务应该是任务#3的一部分.也就是说,任务#3在内部任务完成之前无法完成.
tasks.Add(inner)
await Task.WhenAll(tasks)
await inner; //instead of tasks.Add(inner);