写点什么

C#的未来:异步序列

  • 2015-05-06
  • 本文字数:713 字

    阅读完需:约 2 分钟

C#中的 async/await 语法已经得到了开发者们的广泛接受,但现在开发者们提出了新的要求。他们希望能够通过一种类似于“yield return”的语法从异步函数中返回多个值。在关于 C# 7 的一条新的提议中,这一功能被称为“异步序列”。

这条提议的提出者希望能够使用以下两种模式:

  • IObservable,这是 Reactive Extensions(Rx)的基础,后来成为了.NET 4.0 中的一部分
  • IAsyncEnumerable,这是由 Interactive Extensions(IX)项目所引入的类型,也用于 Entity Framework 7 中。

定义生产者

HaloFour 写道:

从一个序列的生产者的角度来看,这两种模式的 yield return 行为将有一些细微的差别。IObservable可能会立即继续执行,而 IAsyncEnumerable会等到下一次调用 MoveNext() 方法时才会继续执行。

对于 push 模型来说,使用 Observable.Create 方法就足够了,这点已经基本为开发者所接受。而基于 IAsyncEnumerable的 pull 模型实现起来就要麻烦许多。因此,这种时刻某种异步版本的迭代函数以及“yield return”语句就能够大显身手了。

定义消费者

HaloFour 继续写道:

从消费者的角度来说,这两种模式的行为应当是相同的。Observable.ForEach 允许并发执行某些操作,而我认为允许 foreach 方法体运行多个并发线程的方式是非常不直观的(假设派发这些线程时没有使用 SynchronizationContext)。如果它的实现类似于 await 的工作方式,那么可以让某种中间代码(例如 SequenceAwaiter)处理从某个 IObservable获得结果缓冲的细节,或者使用某个扩展方法直接将其转型为 IAsyncEnumerable

关于这个语法还没有提供任何示例,但估计它看起来应该类似于这样:

await foreach (var item in AsyncSource)

查看英文原文: C# Futures: Asynchronous Sequences

2015-05-06 08:362067
用户头像

发布了 428 篇内容, 共 196.3 次阅读, 收获喜欢 39 次。

关注

评论

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

架构训练营-模块一

流火

Linux之nohup命令

入门小站

Linux

设计电商秒杀系统

AUV

「架构实战营」

模块六作业-拆分电商系统为微服务

卡西毛豆静爸

「架构实战营」

拆分电商平台为微服务

smile

架构实战营毕业总结

架构实战营 「架构实战营」

极客星球 | 联邦学习与产品化之路

MobTech袤博科技

人工智能 联邦学习 FATE

对校招生做 Offer 选择的一点心得

踏雪痕

offer 3月程序媛福利 3月月更

架构实训营模块一作业

michael

架构实战营 「架构实战营」

毕业总结

圈圈gor

架构实战营 「架构实战营」

模块九毕业设计

沈益飞

架构训练营 架构训练营4

Prometheus 监控系统

yuexin_tech

Prometheus

《给新中产的理财课》之定投学习笔记(23/100)

hackstoic

投资理财

解决QT编译Android程序不支持openssl问题

DS小龙哥

3月月更

在线CSS美化格式化工具

入门小站

工具

王者荣耀商城异地多活架构设计

唐尤华

架构实战营

架构训练营毕业总结

沈益飞

架构训练营 架构师训练营 4 期

kratos 微服务框架商城实战初识 kratos

Aliliin

Go Kratos

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

入门小站

工具

不考虑安全的数字化转型都是伪命题

极狐GitLab

security DevSecOps

架构训练营-作业六

默光

架构训练营5期 电商小程序

毕业设计 - 电商秒杀系统

圈圈gor

#架构实战营 「架构实战营」

spring cloud篇之配置中心

邱学喆

加密解密 配置中心 spring-cloud-config 配置实时性

2022第11周-打油诗一首

李印

生活记录

架构实战营

踩着太阳看日出

毕业总结

AUV

「架构实战营」

架构实战营 模块九

架构实战营 「架构实战营」 模块九

模块一作业

Dean.Zhang

架构实战营

【51单片机】矩阵键盘

謓泽

3月月更

最新实用油猴脚本推荐

源字节1号

技术分享

毕设-电商秒杀系统

曾竞超

架构实战营 「架构实战营」

C#的未来:异步序列_C#_Jonathan Allen_InfoQ精选文章