写点什么

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

评论

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

用户研究系列之“心流”解析

养心进行时

用户研究 心流 用户画像分析 用户特征分析 福流

云效 Pipeline as Code 来了!这些场景,用好它效率翻倍!

阿里巴巴云原生

阿里云 云原生 云效

云效 Pipeline as Code 来了!这些场景,用好它效率翻倍!

阿里云云效

阿里云 云原生 云效

XTransfer5月产研岗位热招

XTransfer技术

设备二维码怎么生成?三分钟即可搞定

草料二维码

二维码 二维码生成 草料二维码 设备巡检二维码 设备二维码

TikTok海外运营:云手机的四种快速变现方法

Ogcloud

云手机 海外云手机 云手机海外版 跨境云手机 tiktok运营

用户研究之全面解析Persona

养心进行时

用户研究 用户行为分析 用户分析 用户画像 用户特征分析

共赴科技盛会“2024南京智博会”11月在南京国际博览中心召开

AIOTE智博会

南京智博会 物联网展 大数据展 智慧城市展

软件测试学习笔记丨JIRA-Bug管理流程定制

测试人

软件测试

开发大型体育赛事直播平台:现成源码解决方案有哪些功能

软件开发-梦幻运营部

数智制造:机器学习与人工智能的全方位渗透

不在线第一只蜗牛

人工智能 机器学习 数智制造

C#实现多线程的几种方式

EquatorCoco

Java C# JVM

拿捏这12个Java开发框架,轻松拿到30K+

伤感汤姆布利柏

使用Lambda表达式和接口的简单Java 8 Predicate示例

码语者

3分钟讲透服装行业数字化转型新方案!附服装数字化成功案例

优秀

数字化转型 服装产业

Polygon市值机器人

开发丨飞机丨 @aivenli

利用预训练模型优化大模型训练

百度开发者中心

人工智能 深度学习 大模型

HTTP 报文详解

快乐非自愿限量之名

网络协议 网络 HTTP

如何设计与构建 FinOps 流程、团队、体系与目标

阿里巴巴云原生

阿里云 云原生 FinOps

海外云手机解决海外社交媒体运营难题

Ogcloud

云手机 海外云手机 云手机海外版 美国云手机 海外云手机推荐

低代码赋能物流,助力数字物流更高效

EquatorCoco

程序员口头禅:一张嘴就知道是青铜还是王者

高端章鱼哥

算法人生(17):从“课程学习”到“逐步暴露心理疗法”

养心进行时

人工智能 机器学习 AI 算法 #算法

6个步骤解析“用户运营”

养心进行时

运营 产品运营 用户分析 用户运营

利用大模型训练提升AI性能

百度开发者中心

人工智能 大模型

Swagger 中 allOf 的详细解读

Liam

程序员 后端 接口文档 API swagger

算法人生(16):从“K均值 & C均值”看“为人处事之道”

养心进行时

人工智能 机器学习 算法 K-Means #算法

C++ 资源大全:标准库、Web框架、人工智能等 | 最全整理

不在线第一只蜗牛

c++ 人工智能 前端 Web框架

IPv6监测指标有哪些?如何才算真正完成IPv6的升级改造?

国科云

阿里云可观测 2024 年 4 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

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