Mas*_*ler 7 .net c# asynchronous specifications
在C#中,将LINQ查询语法转换为实际执行代码的过程在语言规范的第7.16节中有详细描述,这使得语言开发人员可以使用它在新CLR上实现类似的查询语法.语言.
在C#版本5中添加的async/await语法是否有类似的详细规范?Eric Lippert关于该主题的博客文章之一显示了某种情况下转换的前后观点,但实际上并未揭示任何有用细节层次的基本规则.这个规范是否存在于某个地方?
编辑:我可以看到在C#语言规范中有一个关于await表达式和异步函数的部分.但它并没有像LINQ部分那样进入与细节相同的任何细节.基本上我正在寻找的是一个流程描述,说"按照这些步骤将Eric帖子顶部的代码转换为帖子底部的状态机",这样语言设计人员就可以在不同的CLR语言并最终具有相同的语义.
这似乎是一个实施细节,因为它往往会发生变化。例如,c#6 将在 catch/finally 子句中引入await(这里一般描述的想法)。
然而,有一些关于如何在 c#5 中实现等待程序的深入细节。查看链接,尤其是这个:Async Codegen (ppt)。
这样语言设计者就可以用不同的 CLR 语言实现该功能并最终具有相同的语义
我建议查看 AsyncRewriter代码。
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |