9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

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:342367

评论

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

2025Go面试八股(含100道答案)

王中阳Go

Go 最新面试题

Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版

sysin

Rocky

Go语言是现在进大厂的捷径?快来看看Golang学习语言图

Geek_Yin

Java 程序员 java面试 Java面试题

油气行业AI转型的三昧真火

脑极体

AI

AI Agent需要什么样的数据库?

元闰子

出版社教学资源网的主要功能

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

AI教育 软件外包公司 出版社 教学资源网

驶向智能未来:车载 MCP 服务与边缘计算驱动的驾驶数据交互新体验

EMQ映云科技

人工智能 边缘计算 大模型 MCP

出版社题库系统的开发

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

题库系统 软件外包公司 出版社

通义灵码你问我答:看看 5 月上线了哪些新功能?

阿里巴巴云原生

BeeWorks 协同办公能力:局域网内企业级协作的全场景重构

BeeWorks

即时通讯 IM 私有化部署

IM即时通讯软件,构建企业局域网内安全协作

BeeWorks

即时通讯IM 私有化部署

企业im,为企业设计的私有化即时通讯工具

BeeWorks

即时通讯 IM 私有化部署

其实,从程序员到架构师,只需要掌握这些知识点就够了!

程序员高级码农

程序员 架构师

TortoiseSVN使用-合并深度介绍

刘大猫

人工智能 svn 算法 数据分析 tortoiseSVN

VMware VeloCloud SD-WAN 6.2 新增功能简介

sysin

velocloud

通义灵码你问我答:看看 5 月上线了哪些新功能?

阿里云云效

什么是低代码?2025年低代码开发平台发展现状及标准化研究

优秀

低代码 低代码开发平台

软件测试 | 使用 Playwright 实现滑动验证码

测试人

软件测试

React-native实战系列

溪抱鱼

前端 React

数字人如何通过垂类营销大模型获得“行业超脑”的能力

东信营销科技

智能体 #AI AI营销 #数字人 #东信营销科技

95年,28岁、聊聊外包四年的真实感受

Geek_Yin

Java 程序员 java面试 Java面试题

OpenAI SDK 上新 RealtimeAgent;OpenAudio S1 语音生成模型:语调情感标记,精确控制风格

声网

使用 Amazon Q Developer CLI 调用 MCP Server 实现 Amazon Support 案例自动创建

亚马逊云科技 (Amazon Web Services)

相较于其他局域网聊天工具,BeeWorks优势在哪?

BeeWorks

即时通讯 IM 私有化部署

ETLCloud:重新定义AI驱动的数据集成未来

谷云科技RestCloud

人工智能 AI 数字化转型 ETL 数据集成

AI Agent 工程师绕不开的必修课:API 网关 vs API 管理

阿里巴巴云原生

阿里云 AI 云原生 API网关

华为初面 + 综合面试,附上面试题,share 给大家~

Geek_Yin

Java 程序员 java面试 Java面试题

全网首发!马士兵内部共享—1658页《Java面试突击核心讲》

Geek_Yin

Java 程序员 Java面试题

面了个腾讯拿 38K 出来的,让我见识到了基础的天花板

Geek_Yin

Java 程序员 Java 面试题 java 架构

AI浪潮下的认知重构:从一个数据老兵的转型思考

松子(李博源)

职场 职业转型 #大模型 #产品经理

鸿蒙仓颉语言开发实战教程:商城搜索页

幽蓝计划

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