写点什么

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

评论

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

音频采样器Native Instruments Kontakt 7最新版:解锁海量高品质音色库!

理理

运维安全审计系统厂家有哪些?推荐哪家?

行云管家

运维 行云管家 安全运维

Xcode性能大飞跃!更快的编译速度,更低的内存占用,为你的创意加速!

理理

与非网第三届"物联网技术论坛"将于9月18日在线举办

财见

首届云原生编程挑战赛总决赛冠军比赛攻略_greydog.队

阿里云天池

测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?

阿里巴巴云原生

阿里云 云原生 通义灵码

iStat Menus for mac(iStat Menus激活码):轻松掌握mac电脑性能

理理

IDA Professional for mac 反汇编逆向神器 2024最新破解版

理理

苹果mac电脑剪切板管理神器:Paste for Mac中文版

理理

Vidu 全球首发「主体参照」新功能,一键同步角色特征;GPT-4o 实时音频项目负责人离职创业丨 RTE 开发者日报

声网

JProfiler:识别和解决Java应用程序的性能瓶颈和问题

理理

国产远控软件中,为什么我倾向于选择向日葵?

科技热闻

2024年金九银十最全 Java 面试八股文(真实,高频,有详细答案)

采菊东篱下

Java 面试 #程序员

vivo首登2024凯度BrandZ最具价值中国品牌100强,科技与人文关怀并重

财见

苹果mac电脑微信客户端插件WechatTweak:实现了微信的多开和消息防撤回

理理

一文看懂什么是架构

EquatorCoco

架构

复赛总榜TOP1方案Champion Chasing Boy分享

阿里云天池

全面升级的PDF编辑和管理软件:Adobe Acrobat Pro DC 2024中文直装版

理理

HTTP 客户端:RestClient、WebClient、RestTemplate

FunTester

一文总览 CES 升级新特性,全面了解云上的资源使用

华为云开发者联盟

云监控 ces

上升4名 科大讯飞上榜2024凯度BrandZ最具价值中国品牌百强榜第39名

财见

掌握市场先机:淘宝API如何助力企业实时洞察商品动态

代码忍者

API 测试 pinduoduo API

在线视频和音频下载软件PullTube for Mac

Mac相关知识分享

音频下载软件

测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?

阿里云云效

阿里云 云原生 通义灵码

Mac菜单栏管理工具:Bartender 5

理理

解读 GaussDB (for MySQL) 冷热存储分离实现原理

华为云开发者联盟

多种嵌入式系统开发需求阻碍平台工程发挥最大价值

财见

Springboot中自定义监听器

不在线第一只蜗牛

Java spring Spring Boot

Topaz Gigapixel AI 一键激活版 工智能图片无损放大工具

理理

随着全球制造商的紧缩,全球采购活动以2023年十二月以来最强劲的速度收缩:GEP 全球供应链波动指数

财见

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