写点什么

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

评论

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

关于2020 我有12个关键词

阅读

anyRTC-语音连麦demo上线

anyRTC开发者

音视频 WebRTC 直播 实时语音 语音聊天室

关于“存在”的一点思考

石君

28天写作 量子 世界为何存在

云上独享资源池 自主灵活更安全

产品推荐

CodeDay#5 启动报名| 带你深入探索支付宝终端动态化实践

蚂蚁集团移动开发平台 mPaaS

小程序 mPaaS 2021年度技术盘点与展望 热门活动

2020DevOps状态报告

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

前端代码书写规范

Mr.Cactus

大前端 html/css

链上智能合约APP开发|链上智能合约系统软件开发

系统开发

浪潮云防勒索一站式解决方案,让勒索病毒“上云”无门

产品推荐

DevSecOps:把合规融入DevOps

啸天

DevOps 安全 法律 DevSecOps 应用安全

学习新语言步骤(有其他语言基础前提)

周周

这5个让人窒息的烂代码,你看完都忍不了

华为云开发者联盟

GitHub 代码 代码注释 null

5 天开发接口系统技术小结

老魚

laravel 建站 接口开发 28天写作

CSS11 - 浮动

Mr.Cactus

html/css

2020中国云计算生态峰会召开 浪潮云摘得三项大奖

云服务

智联招聘的微前端落地实践——Widget

智联大前端

大前端

2021,加料!

云原生

Redis学习笔记01:SDS 简单动态字符串

架构精进之路

redis 七日更 28天写作

大数据知识专栏 - Zookeeper的Shell操作

小马哥

大数据 zookeeper ZooKeeper原理 28天写作

代码编译时自动完成白盒测试,这真的可以

华为云开发者联盟

c++ 测试 代码 框架

前端大佬们都在推荐的“绿宝书”你值得拥有

华章IT

JavaScript typescript 大前端 web开发 犀牛书

2020DevOps状态报告——平台模型:扩展DevOps的新方法

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

初识 D3.js :打造专属可视化

vivo互联网技术

JavaScript 数据分析 可视化 图表 D3

重学JS | 异步编程 Promise

梁龙先森

大前端 编程语言 28天写作

SpringCloud 从入门到精通 07--- 订单服务和支付服务注册进Eureka

Felix

智能合约APP开发|智能合约系统软件开发

系统开发

Java单例7种测试实践

叫练

单例模式 单例 手写单例 饿汉式 懒汉式

Dubbo 就是靠它崭露头角!

yes

dubbo 后端 RPC

Python解释器和IPython

程序那些事

Python 数据分析 ipython 程序那些事 Python解释器

云原生动态周报 |华为云主导抗疫药物筛选科研成果"神农项目"登上国际化学顶刊封面

华为云原生团队

GitHub 疫情 云原生 Prometheus 华为云

Python 使用SQLServer

IT蜗壳-Tango

七日更

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