除了微软的文档,是否有一份关于Microsoft Reactive (Rx)框架的良好介绍和教程?
此外,有没有一个好的例子(附代码),展示使用传统异步编码技术解决困难编程问题相比之下,Reactive更容易解决?
除了微软的文档,是否有一份关于Microsoft Reactive (Rx)框架的良好介绍和教程?
此外,有没有一个好的例子(附代码),展示使用传统异步编码技术解决困难编程问题相比之下,Reactive更容易解决?
感谢您提供Hot/Cold帖子的链接。这只是完整系列的一部分,
我将继续更新此博客,发布更多Rx入门内容。
对于更高级的内容,您可以去Rx论坛(MSDN)。
对于深入开发者,可以查看源代码
有趣的奥地利主题演讲关于Rx
这是我见过最好的:DevCamp 2010 Keynote - Rx: Curing your asynchronous programming blues
一些有趣的频道9视频
Kim Hamilton和Wes Dyer:.NET Rx和BCL(VS 2010)中的IObservable / IObserver内部
Rx的创建者采访:专家对专家:Brian Beckman和Erik Meijer - 内部了解.NET Reactive Framework(Rx)
Rx的创建者介绍
Codeproject 上的一篇 文章
另一门课程,第一篇博客含链接(新)
下面是一个使用响应式编程容易实现但使用经典事件实现可能会很混乱(甚至具有挑战性)的示例,它在鼠标按下时绘制线条。代码可读性高,没有显式的状态处理:
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 上有几个关于这个主题的不同视频:
var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y))
。 - MisterMetaphor在学完一些基础知识,包括HandsOnLab之后,确保你去看看Lee Campbell的热Observable和冷Observable,这让我对Rx的晦涩神秘有了一些理解 :)
请阅读以下文章,特别是下载相关源代码并进行实践:
相信这会对您有所帮助。