如果我在循环中多次调用异步方法而不等待,并将任务保存到列表中,然后我以相同的方法将其提供给WhenAll,这个场景中的确切线程故事是什么?
说,我们正在发出HTTP请求。在I / O(准备请求)之前我的方法的同步部分将在原始线程上顺序运行。等待HTTP调用完成将对所有请求并行发生,而原始线程将继续运行,直到它到达WhenAll语句。然后(假设I / O仍然未决)原始线程将被释放到线程池。
我的问题是,在此之后会发生什么?当I / O完成每个任务时,哪些线程将运行异步方法中的其余代码(假设它的所有常规同步代码,例如处理HTTP响应)?
我希望这是第2选项,但我想知道。