HTML5技术

C#与C++的发展历程第三 - C#5.0异步编程巅峰 - hystar(6)

字号+ 作者:H5之家 来源:博客园 2016-01-15 10:03 我要评论( )

简单的说一下这个struct优化。一开始状态机被作为struct对象放置在栈上,对于await的工作已经完成不需要等待的情况,将快速结束状态机,这样状态机直接出栈效率高。如果await的工作需要等待则控制异步方法执行的Asy

简单的说一下这个struct优化。一开始状态机被作为struct对象放置在栈上,对于await的工作已经完成不需要等待的情况,将快速结束状态机,这样状态机直接出栈效率高。如果await的工作需要等待则控制异步方法执行的AsyncTaskMethodBuilder再将状态机移动到堆中。因为这种情况下会发生Context切换(在SynchronizationContext不为空的情况下),如果状态机还在栈上则会导致很大的切换负担。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 2年前端学习历程,与找不到工作的悲愤与吐槽!(100%真实经历,看博主怎么一步步走向失业) - 蒋启钲

    2年前端学习历程,与找不到工作的悲愤与吐槽!(100%真实经历,看博

    2017-03-29 11:00

  • 开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台 - 大壮他哥

    开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街

    2017-01-20 15:00

  • 从零到百亿互联网金融架构发展史 - 纯洁的微笑

    从零到百亿互联网金融架构发展史 - 纯洁的微笑

    2017-01-14 13:00

  • 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台) - 彩色铅笔

    记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗

    2017-01-12 10:01

网友点评
s