BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Rx 1.0解决了异步数据访问的问题

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 李永伦 关注 0 他的粉丝 发布于 2011年7月7日. 估计阅读时间: 2 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

酝酿两年之后,微软发布了Reactive Extensions(Rx)库的1.0版。Rx把事件驱动UI与LINQ、并发性和异步调用结合起来。

Rx尝试解决从基于事件的UI异步访问数据的问题。标准的迭代器模式以及它的基本接口IEnumerable和IEnumerator对于异步操作是不足够的,因此Rx通过引入观察者模式来解决这个问题,这个模式包含两个主要的接口,IObservable和IObserver。不是客户端一步一步地迭代数据集合,而是集合把数据作为异步调用的结果推送给客户端,终结了调用循环。

这种做法在云计算里特别有用,Rx项目的主管Erik Meijer说。由于固有的网络延迟性,云计算使用异步调用,因此客户端最好是请求数据,然后继续执行其它任务,当数据可用时才接收。虽然这个问题用更标准的方式来解决也很简单,但Rx的强大之处在于它内置了LINQ和并发性的支持。因此,用户并不仅能以异步的方式获得一组数据,而且可以在一组数据上产生异步LINQ查询,然后并行地运行它们。Rx通过构建在Parallel Extensions(PFX)之上处理并发性,这个托管并发库包含了Parallel LINQTask Parallel Library

酝酿两年之后,Rx成为微软的官方产品,并在Data Developer Center首次发布稳定的1.0版。开发者可以通过C#、VB.NET、C++、F#和JavaScript在所有XP之后的Windows和Windows Phone 7上使用Rx进行编程。

其它资源:InfoQ最近的采访Bart De Smet on Reactive Extensions(Rx)for .NET and JavaScriptRx MSDN文档Channel 9 Rx研讨会

查看英文原文:Rx 1.0 Solves the Problem of Asynchronous Data Access

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

中文版咋更新这么慢,应该还有js版的 by bing quan

中文版咋更新这么慢,应该还有js版的

Re: 中文版咋更新这么慢,应该还有js版的 by 李 永伦

貌似MSDN的RxJS页面被移除了,Rx的页面也改过了。

Re: 中文版咋更新这么慢,应该还有js版的 by Jeffrey Zhao

按理说应该有吧,最近还有采访 www.infoq.com/interviews/de-smet-rx
以前是安装好以后在目录里有JS的,所以可能的确没有单独下载的……

Re: 中文版咋更新这么慢,应该还有js版的 by lee ambar

msdn.microsoft.com/en-us/data/gg577610#js

RxJS和去年的版本比没有任何变化。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT