简单的说一下这个struct优化。一开始状态机被作为struct对象放置在栈上,对于await的工作已经完成不需要等待的情况,将快速结束状态机,这样状态机直接出栈效率高。如果await的工作需要等待则控制异步方法执行的AsyncTaskMethodBuilder再将状态机移动到堆中。因为这种情况下会发生Context切换(在SynchronizationContext不为空的情况下),如果状态机还在栈上则会导致很大的切换负担。
简单的说一下这个struct优化。一开始状态机被作为struct对象放置在栈上,对于await的工作已经完成不需要等待的情况,将快速结束状态机,这样状态机直接出栈效率高。如果await的工作需要等待则控制异步方法执行的Asy
简单的说一下这个struct优化。一开始状态机被作为struct对象放置在栈上,对于await的工作已经完成不需要等待的情况,将快速结束状态机,这样状态机直接出栈效率高。如果await的工作需要等待则控制异步方法执行的AsyncTaskMethodBuilder再将状态机移动到堆中。因为这种情况下会发生Context切换(在SynchronizationContext不为空的情况下),如果状态机还在栈上则会导致很大的切换负担。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
2年前端学习历程,与找不到工作的悲愤与吐槽!(100%真实经历,看博
2017-03-29 11:00
开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街
2017-01-20 15:00
从零到百亿互联网金融架构发展史 - 纯洁的微笑
2017-01-14 13:00
记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗
2017-01-12 10:01