除了微软的文档,是否有一个很好的Microsoft Reactive (Rx)框架的介绍和教程?

另外,有什么好的例子(有代码)可以让使用传统异步编码技术难以解决的编程问题变得更容易?


当前回答

这里有一个用响应式编程很容易做到的例子,但是用经典事件很麻烦(如果没有挑战性的话),当鼠标按钮按下时,它会画线。它是可读的,没有显式的状态处理:

var pen = new Pen(Color.Red, 3);
var graphics = this.CreateGraphics();

var mouseMoveWhileDown = 
    from md in this.GetMouseDown()
    from mv in this.GetMouseMove().Until(this.GetMouseUp())
    select new Point(mv.X, mv.Y);

mouseMoveWhileDown
    .Pairwise()
    .Subscribe(tup => graphics.DrawLine(pen, tup.Item1, tup.Item2)); 

(我必须承认,在这个例子中,Pairwise()是自制的…)

IObservable最重要的一点是它是“可组合的”,就像IEnumerable一样。

我彻底推荐另一个答案中提到的视频。事实上,在Channel9上有几个不同的视频:

其他回答

你可能会发现这一系列关于响应式LINQ的文章(共有四篇)很有用: 响应式编程(2)-引入响应式LINQ。

他有一个使用它编写游戏的例子,所以它应该是你所寻找的。

阅读这些文章,特别是下载相关的源代码并试用一下。

第一部分-系统。响应式或。net响应式扩展(Rx) -概念和第一眼 第二部分- LINQ到事件-更多关于.NET响应式扩展(Rx) 第三部分- LINQ到事件-使用T4文本模板生成GetEventName()包装器方法

相信这会有帮助

一旦你学过一些基本的东西包括HandsOnLab 一定要看看李·坎贝尔的《冷热观测》,它为我揭开了Rx的神秘面纱:)

我喜欢Rx介绍第1部分-键类型,它展示了关键特性。

你的“排除微软文档”条款是否适用于第九频道的视频?

来自响应式框架的创建者Erik Meijer: -专家对专家:Brian Beckman和Erik Meijer - .NET响应式框架内部(Rx)

全新:入门。net的Rx扩展