写点什么

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:361748
用户头像

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

关注

评论

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

软件测试/全日制测试开发/测试管理|如何制定合理的职业规划

霍格沃兹测试开发学社

Typora for Mac(Markdown文本编辑软件) 1.7.6完美激活版

mac

Typora 苹果mac Windows软件 Markdown编辑软件

每日一题:LeetCode-139. 单词拆分

Geek_4z9ami

Go 面试 算法 LeetCode 动态规划

智能商品系统如何协同其他系统共享数据和优化供应链决策?

第七在线

Java药物不良反应ADR智能监测系统源码

源码星辰

Java 源码 ADR智能监测系统

记一次JSF异步调用引起的接口可用率降低

京东科技开发者

炸裂!「用嘴编程」的时代真的来了,席卷8000多家企业的Comate大升级

飞桨PaddlePaddle

人工智能 深度学习 编程语言

【推文】企业级AI问答知识库训练营,火热开营中!

阿里云大数据AI技术

找软件开发公司做软件,三种付款比例,降低支付风险

软件开发-梦幻运营部

Navicat Premium 15 mac(数据库开发软件)v15.0.30完美激活版

mac

苹果mac Windows软件 Navicat Premium 15 数据库开发软件

【第七在线】智能商品系统和ERP、BI系统的区别

第七在线

mybatisplus推荐用法

meacial

分层架构 设计原则 开发规范 MyBatisPlus

未来招聘更难?用友大易招聘云助力企业面对未来更从容

用友BIP

智能招聘

喜讯!尚思卓越再次入选数据安全创新能力全景图谱

尚思卓越

数据安全

数据讲述中国故事!和鲸助力中国综合社会调查(CGSS)数据分析与可视化大赛圆满收官

ModelWhale

人工智能 大数据 竞赛 中国人民大学 人文社科

拼多多根据ID取商品详情原数据 API (pinduoduo.item_get_app_pro)在电商中的应用

技术冰糖葫芦

API

康威定律:AI时代的IT组织变革

FinClip

软件测试/测试开发全日制/测试内推|字节跳动岗位开放~

霍格沃兹测试开发学社

【大型模】模型型飞跃升级—文档图像识别领域迎来技术巨变

颜淡慕潇

ChatGPT OCR技术 垂直大模型 图像识别模型

不是每个企业都要数字化转型,但是每个企业都要进行数字化升级!

天津汇柏科技有限公司

数字化转型

软件测试开发/全日制/测试管理/人工智能丨如何合理制定职业规划

测试人

软件测试

“用友-旭阳数智化联合团队”荣获“2023数字化践行者基石奖”

用友BIP

企业数智化

软件测试/人工智能/全日制测试开发|利用ChatGPT自动生成自动化测试脚本

霍格沃兹测试开发学社

阿里云计算平台大数据基础工程技术团队直聘!!!

阿里云大数据AI技术

软件测试开发/全日制/测试管理丨利用ChatGPT生成自动化测试脚本

测试人

软件测试 测试开发 ChatGPT

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