写点什么

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

评论

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

2021最新分享成功入职腾讯(后台开发岗)面经

Java 程序员 后端

2021社招阿里、腾讯、蚂蚁金服「4面」Java面试高频题分享

Java 程序员 后端

21世纪什么最贵?“人才”看阿里大佬用一本书带你读懂TCP-IP协议

Java 程序员 后端

25 大 Java 后端面试指南,3000 道面试题解析

Java 程序员 后端

588页!三个通宵学完这份“宝典”,4面斩获字节跳动offer

Java 程序员 后端

【Promise 源码学习】第三篇 - 实现一个简版 Promise

Brave

Promise 11月日更

Redis 6.0 新特性篇:多线程网络模型全面解密

码哥字节

redis 多线程 IO多路复用 11月日更

2021,你还在写“赤裸裸”的API吗?(1)

Java 程序员 后端

7月份了,再不准备金九银十就晚了,阿里2021最新数据结构与算法面试题手册

Java 程序员 后端

Android C++系列:认识JNI

轻口味

c++ android jni 11月日更

进击的Java(二)

ES_her0

11月日更

2021,你还在写“赤裸裸”的API吗?

Java 程序员 后端

容器 & 服务:Helm Charts配置文件分析

程序员架构进阶

容器 Helm 11月日更 chart

2021最新分享“天猫”面经:10万字大厂面试总结

Java 程序员 后端

69-个经典-Spring-面试题和答案详解(下)

Java 程序员 后端

4年Java程序员十面阿里终拿下offer,评级P6+年薪30-40w无股票

Java 程序员 后端

22道Java Spring Boot高频面试题

Java 程序员 后端

Prometheus HTTP API 查询(四)Target 和查询结果格式

耳东@Erdong

Prometheus PromQL HTTP API 11月日更

2021美团高级工程师亲自汇总九大面试专题(附1000字解析)

Java 程序员 后端

2021金三银四,献给程序员从入门到放弃的 Java 架构师面试题

Java 程序员 后端

22款终端生产力工具,效率飞起!

Java 程序员 后端

2年Java,面试蚂蚁金服总结

Java 程序员 后端

3 条掏心掏肺的建议,新手学习编程必备,快上车!

Java 程序员 后端

2021最新分享字节四面成功拿Offer!

Java 程序员 后端

2021最新分享成功入职阿里巴巴(口碑部门)面经

Java 程序员 后端

解决:interface conversion: interface {} is float64, not int

liuzhen007

11月日更

System.Text.Json 中的字符编码

喵叔

11月日更

2021阿里大牛最新发布:Java高频面试题和核心技术(已涨薪6K)

Java 程序员 后端

2021阿里巴巴钻石级级“Docker全线笔记”新鲜出炉

Java 程序员 后端

4月面试5月成功入职阿里,工作之余整理复盘:面试经历+备战经验分享!

Java 程序员 后端

为什么区块链和加密资产对于实现元宇宙很重要?

CECBC

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