阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

Reactive Extensions for .NET 4.5

  • 2011-11-17
  • 本文字数:785 字

    阅读完需:约 3 分钟

.NET 4.5 带来了新的功能,我们可以趁这个机会再来探讨一下独立的 Reactive Extensions 库。 Bart De Smet 谈到了 Rx 实验分支里的情况,也提到了 JavaScript 和 C++ 的 Rx。

首先是 Rx 支持 ExceptionDispatchInfo 。在之前版本的.NET 里,捕捉异常和抛出异常的线程一般是相同的。如果库需要把它们挪到另一个线程,会通过封送回调的字段传递它们,然后通过一个泛型异常包装它们。新的异常不能隐藏下面发生的真正错误。

ExceptionDispatchInfo.Capture 方法用于捕获异常,然后通过 ExceptionDispatchInfo.Throw 在正确的线程里重新抛出。堆栈跟踪同时包括新的和原来位置的帧,并通过“End of stack trace from previous location where exception was thrown”文字分割两者。

Reactive Extensions 创建的时候无法使用 Task,因为那时 Task Parallel Library 还不能用,即使现在,许多平台仍然不支持 TPL,比如说,Silverlight。作为替代方案,Rx 库是在.NET 原来的异步模式上构建的。因此 Observable 可以通过 Observable.FromAsyncPattern 方法创建。

由于 C# 5 和 VB 11 支持的 async/await 是在任务之上构建的,各个平台现在应该完全支持 Task Parallel Library 了。这使得 Rx 项目最终可以直接从 Task构建 Observable。

除了任务和 Observable 之间的转换,Reactive Extensions 还将直接支持 await 关键字。这会返回 IObservable 序列的最后一项。如果想要序列里的全部项,可以通过 ToList 方法把 IObservable转成 IObservable<List>。

另一个改变是替换了 Average 和 ForEach 等阻塞操作。举个例子,新的 ForEachAsync 方法将会返回一个可以等待的 Task。

JavaScript 版的 RxJS 将会有一个新的版本,基于 Rx 的当前产品版本。目前还没有时间表,但他们表示已经进入完善阶段。Reactive Extensions 组还有一个本地开发者负责 C++ 版,暂命名为 RxC。

查看英文原文: Reactive Extensions for .NET 4.5

2011-11-17 07:342269

评论

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

喜讯!云起无垠获评“国家高新技术企业”认证

云起无垠

云起无垠荣获“北京市2024年第三季度专精特新中小企业”称号

云起无垠

一文带你入门 MCP(模型上下文协议)

Se7en

Byteman 使用指南(三)

FunTester

一次线上生产库的全流程切换完整方案

京东零售技术

后端

腾讯面试:大厂必问消息队列场景面试题

王中阳Go

腾讯 消息队列 面试问题

DNS解析防护应措施有哪些?

国科云

MES系统助力五金制品行业数字化转型

万界星空科技

制造业 mes 万界星空科技 五金行业 五金制品行业

区块链智能合约的优化

北京木奇移动技术有限公司

智能合约 区块链技术 软件外包公司

音乐 NFT 项目的优化

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

体育 NFT 项目的技术框架

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

百度智能云曦灵推出春节功能:一张照片即可生成拜年视频!

科技热闻

2024 TiDB 社区年度总结,又携手共进了一年,2025年,一起迎接变化,挑战变化!

TiDB 社区干货传送门

MCP Server 开发实战:无缝对接 LLM 和 Elasticsearch

Se7en

从数据到决策,如何打造驱动游戏业务增长的数据引擎?

镜舟科技

游戏 分析型数据库 StarRocks 物化视图 实时分析

艺术藏品NFT的开发流程

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

艺术藏品NFT的开发流程

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

《CPython Internals》阅读笔记:p336-p352

codists

CPython Internals

1688 图片识别商品接口系列(1688 API)

tbapi

1688API 1688图片识别接口

牛牛剧场APP:不只是观看,更是投资未来的趋势

新消费日报

Kmesh v1.0正式发布!稳定易用的高性能Sidecarless服务网格

华为云原生团队

云计算 容器 云原生

Reactive Extensions for .NET 4.5_.NET_Jonathan Allen_InfoQ精选文章