lys*_*cid 6 .net c# clr asynchronous async-await
作为一名C#程序员,他有兴趣探索"如何工作",我有兴趣了解更多关于使新异步功能工作的过程.
我关注过Eric Lippert关于异步的优秀文章系列:异步博客文章
我不记得在任何地方看到任何对此功能的实现的引用(在高级别),除了"编译器正在为我们完成大部分工作"这一事实.
这个功能严格来说是编译器功能吗?编译器是否以某种方式重写代码,那就是它?还是有其他的东西,如运行时支持,使这种情况发生?
Jon*_*eet 20
不,它不完全在编译器中.它依赖于一些新的接口,例如INotifyCompletion
和一些框架实现支持AsyncTaskMethodBuilder
.我不相信有任何CLR更改需要.
编译器做了很多工作,构建状态机 - 它只是引用状态机中的一些类型.哦,很多Task
相关类型都是出于性能原因而进行了重大修改.
我有一系列博客文章,最初是针对CTP编写的,但只使用了vanilla .NET 4和一些我自己掀起的课程.他们不会反对生产实施(随着时间的推移,事情会发生一些变化),但他们会给你一个关于幕后发生的事情的总体印象.
归档时间: |
|
查看次数: |
578 次 |
最近记录: |