写点什么

WinRT:超越 async 与 await

  • 2012-05-21
  • 本文字数:603 字

    阅读完需:约 2 分钟

新的 Windows Runtime(WinRT)的目标之一就是为开发者进行异步编程提供更好的支持。借助于异步操作,程序可以在其他操作(诸如文件 I/O 或是网络通信)尚未结束的情况下保持对用户的响应。这种响应性对于大多数用户应用来说都是很有用的,包括触摸界面,用户在这种情况下希望手势能有快速的反馈。

为了实现这个目的,C#与 Visual Basic 程序员通过“ await/async ”关键字来实现异步操作,同时又不会造成程序控制流的过分复杂。遵循 async API 调用的程序可以依靠编译器在发出调用时自动将上下文切换至原来的状态。近日,来自微软的 Stephen Toub详细解释了该过程的工作原理。

编译器内部重写了标记为async 的方法以通过状态机将其实现出来。当程序员将某条语句标记为“await”,编译器就可以插入标记,通过这些标记,编译器能够知晓可以在何处挂起与继续方法的执行,在这个过程中是不需要用到锁的。

Toub 说到:

在等待某个尚未完成的异步操作时,编译器生成的代码能够确保与该方法相关的所有状态(比如说局部变量等)都会被打包并保存到堆上。接下来,函数返回到调用者,这样其运行的线程就可以做其他事情了。当稍后等待的异步操作完成时,方法的执行又会使用之前保存的状态继续下去。

Toub 又继续介绍了一些场景,程序员会看到比“await”所提供的更为强大的控制。在这种情况下就需要通过“AsTask”方法来为进度报告提供支持或是支持多点继续。

查看英文原文: Going Beyond async and await On WinRT

2012-05-21 10:382020
用户头像

发布了 88 篇内容, 共 266.8 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

实测9款AI文件助手!原来最好用的并不是全网称赞的谷歌NotebookLM...

可信AI进展

人工智能、

让Kimi像人类思考的“Kimi探索版“已开启灰度内测!GPT-o1贡献者之一宣布离职|AI日报

可信AI进展

探索5G工厂:技术赋能下的工业革新

万界星空科技

智能制造 mes 万界星空科技mes 5G智能工厂

几大远程软件怎么选?为何我推荐使用向日葵?

科技热闻

如何绘制族谱?这款Mac家谱软件MacFamilyTree可以轻松帮你绘制百年家族谱!

Rose

【论文速读】| AutoSafeCoder:通过静态分析和模糊测试保障LLM代码生成安全的多智能体框架

云起无垠

OpenHarmony技术引领筑生态 万物智联创未来

最新动态

线上事故风险解读之数据库篇

巧手打字通

MySQL 数据库 架构 后端 经验总结

Apache Doris 2.0.15 版本发布

SelectDB

数据库 搜索引擎 数据仓库 大数据 开源 实时分析

Ulysses教程_让Ulysses更便捷的使用技巧

Rose

公开课 | 金九银十,测试开发面试秘籍大公开!

测试人

软件测试

百度智能云新一代云原生产品加速 AI 原生应用落地

Baidu AICLOUD

云原生 AI 原生

如何检查Mac上是否启用了SIP系统完整性保护

Rose

photoshop 运行弹窗This non-genuine Adobe app has been disabled

Rose

autocad2021 mac破解版安装教程-AutoCAD 2021mac版自带中文

Rose

Mac窗口管理软件合集|告别混乱屏幕,一切井井有条。

Rose

数据为王:人工智能如何引领软件开发新时代

天津汇柏科技有限公司

人工智能 软件开发

云栖实录 | 智能运维年度重磅发布及大模型实践解读

阿里云大数据AI技术

运维 云原生 gitops 智能运维 大模型

曲面LED屏:视觉革新与使用优势的深入分析

Dylan

技术 视觉 LED display LED显示屏 市场

MES系统如何实现生产过程的全流程追溯

万界星空科技

产品管理 mes 万界星空科技 产品追溯 车间管理

Autodesk Maya 2025 for mac完美破资源 玛雅2025下载 兼容M及Intel芯片

Rose

Photoshop2021中文版 附ps2021破解补丁 及一键替换天空使用教程

Rose

Bartender 4:图标显示切换大变样,还能在菜单栏自定义文字

Rose

NocoBase 与 Appsmith:哪个低代码平台更适合你?

NocoBase

低代码 开发工具 无代码

iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例

阿里巴巴云原生

阿里云 云原生 iLogtail

有限元分析边界条件、节点、收敛分别是什么意思?

思茂信息

节点 有限元分析 边界条件 收敛

地平线双目深度估计参考算法 StereoNetPlus 优化思路解读

地平线开发者

自动驾驶; 算法、

传统IT设备包括哪些?堡垒机可以全部管理吗?

行云管家

网络安全 堡垒机

眉山等保测评机构有哪些?在哪里?

行云管家

等保 眉山

苹果Mac电脑想要实现双系统运行,Parallels Desktop虚拟机来帮你!

Rose

国内首个专业领域知识增强服务框架 KAG 技术报告,助力大模型落地垂直领域

可信AI进展

人工智能

WinRT:超越async与await_C#_Jeff Martin_InfoQ精选文章