编译器是否可以创建具有StackOverflowException的异步代码?

m-y*_*m-y 1 c# stack-overflow async-await c#-5.0

参考答案:https://stackoverflow.com/a/4047607/347172


基本上,既然编译器正在创建一个使用递归的状态机,那么具有" 太多 " await的类是否可能导致编译器生成会引发异常的代码?

Ste*_*ary 5

不是你想的那样.编译器创建一个状态机,它将自行调度,而不是调用自身.调度创建一个"trampoline",它重置堆栈.