写点什么

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

评论

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

AI如何帮助解决生活中的琐碎难题?

天津汇柏科技有限公司

AI 人工智能

请查收| 京东零售技术AI领域前沿探索-10篇顶会论文合集

京东科技开发者

请查收| 京东零售技术AI领域前沿探索-10篇顶会论文合集

京东科技开发者

碾压 OpenAI,DeepSeek-R1 发布!如何在本地实现 DeepSeek?

智领云科技

openai DeepSeek DeepSeek v3

腾讯云 AI 代码助手: Codebase 本地工程检索

CodeBuddy

【Abyss】Android平台BPF和SECCOMP的SVC指令拦截

iofomo

android 虚拟化技术 拦截

一种轻量分表方案-MyBatis拦截器分表实践

京东科技开发者

人工智能在音频、视觉、多模态领域的应用

测试人

人工智能 软件测试

培训讲师管理系统(源码+文档+部署+讲解)

深圳亥时科技

AI口语评测APP上线注意事项

北京木奇移动技术有限公司

软件外包公司 AI口语测试 AI英语学习

Locks, Actors, And Stm In Pictures

werbenhu

actor

WebAssembly视频检测在社区创作平台的落地与实践 | 得物技术

得物技术

算法 前端

AI口语练习APP的性能优化

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

如何查看商品销量 API 接口的性能指标数据

科普小能手

数据挖掘 数据分析 电商 解决办法 API 接口

热更新适配ibatis原理浅析

京东科技开发者

2025年深圳国际新能源电池及电池材料展会

秋硕展览

2025年睡眠展|2025广州国际睡眠家居产品展会

秋硕展览

@所有人 坚持长期价值创造,智启数字未来!

赛博威科技

数字化 数字营销 赛博威

AI口语练习APP的场景测试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

广告发布平台(源码+文档+部署+讲解)

深圳亥时科技

人工智能丨视觉识别在自动化测试中的应用

测试人

人工智能 软件测试

2025 年最值得关注的 8 大数据复制工具

tapdata

灾备 数据复制 实时数据 数据复制工具 fivetran

NocoBase 本周更新汇总:改进文件存储扩展

NocoBase

开源 低代码 插件 无代码 版本更新

AI口语陪练APP的关键技术

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI口语学习

2025春招,Spring 面试题汇总

威哥爱编程

spring spring 面试题

少儿英语系统(源码+文档+部署+讲解)

深圳亥时科技

1688店铺所有商品列表接口系列(1688 API)

tbapi

1688API 1688店铺所有商品接口

一年做一次,一次做半年,《DevData 2025研发效能基准报告》再度起航!

思码逸研发效能

研发效能 研发效能度量 研发效能管理 思码逸

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