迭代器和异步方法都创建了一个状态机,用于保持 yield/await 操作之间的状态,并且方法中的每个本地都成为该状态机类型实例中的一个字段。
在这个演讲中,Stephen Toub 谈到如果你有很多 await 调用,在异步方法的主体中减少局部变量是一种有效的(非微)优化。(即,如果您在循环中等待)
所以在这种情况下,我想知道拥有 7 个本地人和拥有一个本地人(即Tuple<T1, T2, T3, T4, T5, T6, T7>
.
显然,如果迭代器中只有一个yield或 async 方法中只有一个await ,它只会使事情复杂化,但是当涉及到数千个或更多时,您是否认为使用元组(或任何其他可以包装您的字段的类型) 有什么好处吗?
或者这只是另一种微优化尝试,什么也没做或使用太少?
编辑:现在我又想到了,我想如果它有任何好处的话,它已经以这种方式实施了。尽管如此,我仍然对此感到好奇。