什么是LINQ事件又名RX框架又名在.NET 4.0中的反应扩展(也可作为反向移植的版本)?
换句话说,什么是System.Reactive.dll所有的东西呢?
什么是LINQ事件又名RX框架又名在.NET 4.0中的反应扩展(也可作为反向移植的版本)?
换句话说,什么是System.Reactive.dll所有的东西呢?
.NET的Rx队(这是不是一个正式的名称)发现任何推序列(事件,回调)可以通过拉动序列被看作(我们通常做在访问可枚举),以及 - 或者他们在本质上双。 总之观察者/可观察到的图案是双枚举图案。
那么,什么是酷的这个双重性?
你拉序列(读声明式的编码)做任何事情适用于推序列以及。 这里有几个方面。 您可以从现有的事件创建观测量,然后在.NET中使用它们作为一等公民 - 也就是说,你可以从事件创建一个可观察到的,并公开相同的属性。
由于的IObservable是数学双重的IEnumerable的,.NET的Rx利于LINQ过类似事件推序列,就像LINQ超过IEnumerables
它提供了更大的自由度来组成新的事件 - 你可以创建特定事件一般出事件。
.NET的Rx引入了两个接口,的IObservable和IObserver该“规定使用的输入和输出适配器,生产者和事件源和汇消费者替代”,这将很快成为事实上的用于声明性方式编写异步代码。 下面是一个简单的例子。
//Create an observable for MouseLeftButtonDown
var mouseLeftDown=Observable.FromEvent<MouseButtonEventArgs>
(mycontrol,"MouseLeftButtonDown");
//Query the above observable just to select the points
var points = from ev in mouseEvents
select ev.EventArgs.GetPosition(this);
//Show points in the window's title, when ever user
//presses the left button of the mouse
points.Subscribe(p => this.Title = "Location ="
+ p.X + "," + p.Y);
你可能会经历这些职位以及获得详细的头部和尾部。 也有看涉及源代码。
看看这组文章
你可以阅读更多关于它在这里: http://themechanicalbride.blogspot.com/2009/07/introducing-rx-linq-to-events.html
我第一次接触是在这个博客,因为我读他的F#的书: http://tomasp.net/articles/reactive-ii-csevents.aspx
基本上我对它的理解是,当你写了鼠标移动的事件处理程序,例如,您可能要连续捕获这些事件,也许能算多少移动或点击,但是,基本上,你要使用在不仅仅是为事件处理多种方式的信息。 因此,只把这些事件作为一个连续的数据流。
此外,检查出这9频道视频: 专家到专家:布赖恩·贝克曼和埃里克·梅耶尔-在.NET框架无功里面(Rx)的
从展会介绍:
在.NET框架无功(Rx)的是数学双LINQ到对象。 它由一对代表,或可观察到的,基于推送的集合接口IObserver /的IObservable,加上了实现LINQ标准查询操作和其他有用的流变换函数扩展方法库的。
我觉得RX的本质正在发生变化 ,使我们看信息的角度 。 自然地,每一条信息是一些过程,其中发生在时间 - 空间连续的结果。 传统方法的工作原理与过程的投影“当前”时间平面,失去了时间维度作为结果的细节。
RX的工作原理与投影到其他尺寸,拍摄时间组件一样,所以也难怪LINQ到RX是普通LINQ的一个超集。