QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

评论

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

TLS加密远程连接Docker

Java 程序员 后端

Vim,人类史上最好用的文本编辑器!从此以后你就是一个善良的极客!

Java 程序员 后端

windows7 本地搭建ELK 收集项目运行日志

Java 程序员 后端

ZK(ZooKeeper)分布式锁实现

Java 程序员 后端

ZooKeeper分布式配置——看这篇就够了

Java 程序员 后端

全面通透深入剖析工厂方法模式

Tom弹架构

Java 架构 设计模式

this与super关键字(阿里巴巴面试竟然问道这个了……今天把它盘透彻了!

Java 程序员 后端

官宣!Apache ShardingSphere 5.0.0 正式发布

SphereEx

Java 数据库 Apache ShardingSphere

tomcat的maxThreads、acceptCount,对高并发的影响

Java 程序员 后端

架构实战营-模块三作业

随风King

「架构实战营」

基于Fiber的React Diff算法源码分析

贝壳大前端技术团队

Fiber React Diff

Tomcat性能调优

Java 程序员 后端

volatile关键字的原理和要避免的误区

Java 程序员 后端

Vue学习之基础入门

Java 程序员 后端

智能边缘框架Baetyl,为各行业落地实践提供安全机制

百度大脑

人工智能 百度

Ubuntu16安装Nvidia驱动(GTX1060显卡)

Java 程序员 后端

两强联手,百度智能云和中电互联打造自主可控工业互联网联合实验室

百度大脑

人工智能 百度

营口市广东商会成立

江湖老铁

WPF学习——依赖项属性(2)

Java 程序员 后端

Zookeeper(从7个方面来了解Zookeeper基础概念)

Java 程序员 后端

Win10安装Tomcat服务器与配置环境变量

Java 程序员 后端

windows 下JDK12的安装过程

Java 程序员 后端

Tomcat 多端口,多虚拟主机配置方法

Java 程序员 后端

Worktile、Teambition与Tower项目管理软件对比

Java 程序员 后端

YGC问题排查,又让我涨姿势了!

Java 程序员 后端

T-SQL——数据透视和逆透视

Java 程序员 后端

TCP面试相关总结

Java 程序员 后端

WPF学习——依赖项属性(1)

Java 程序员 后端

WPF学习——依赖项属性(2)(1)

Java 程序员 后端

Android技术分享| 【自习室】自定义View代替通知动画(2)

anyRTC开发者

android 音视频 WebRTC 移动开发 自定义view

Volatile:内存屏障原理应该没有比这篇文章讲的更清楚了

Java 程序员 后端

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