2010-03-31 67 views
73

我了解Rx的基础知识。我在哪里挣扎的是你如何在学术范例之外使用它?什么是一些常见的,简单的现实世界的场景,其中Rx比我们今天在.NET中有更好的解决方案?反应性扩展的好例子使用

+2

我用Rx编写了一个WPF Bing搜索演示:http://blog.andrei.rinea。ro/2013/06/01/bing-on-reactive-extensions-story-code-and-slides/ – 2013-06-01 20:48:09

+1

我在我的博客上的一系列文章中回答了这个问题:http://rehansaeed.co.uk/reactive-extensions-part1-replaces-events/ – 2014-09-24 12:52:19

+0

请查看https://github.com/AdaptiveConsulting/ReactiveTraderCloud。我认为这是一个很好的例子,因为他们为他们的样本使用了很多Reactive Extension。干杯! – thangchung 2016-12-29 12:01:10

回答

36

对于一束良好实例,参见the 101 Rx Samples wiki

+11

感谢您的链接。那里有一些非常好的样品。还是不太明白那首歌 - “哦,这是这个解决的典型问题”样本。然后,再次,可能只是我在缓慢的摄取。 – 2010-03-31 15:27:23

+7

哼......尽管它的得分很高,但这个答案仍然是“仅链接”。你可能会充实一点吗? – Jubobs 2015-01-05 14:41:14

4
  • 设备观测值
  • 数据现在正在添加在通过消息总线

在两种情况下,接收所述数据的标准方法是通过事件,但如果我想要查询语法或组合,那么RX将它提供给我的事件不。

+0

很好的例子。谢谢。 – 2010-04-20 15:36:01

25

首先,IObservable 是事件。因此,在任何你使用内部事件的地方,你都可以使用IObservable--如果你以后需要将LINQ应用到这个事件中,你就可以在不重构的情况下完成。

其次,RX适合任何情况,当你需要运行你的代码asynchronousely。例如,调用Web服务或加载大图像。

但是,当真正开始闪耀 - 如果你的程序达到的IObservable使用的一些“临界质量”,你开始结合不同的观测,你会惊奇容易一些任务怎么成了。

2

Rx非常通用,所以它具有无限的实用性,就像IEnumerable/IEnumerator具有无限的实用性一样。 IE拉取值,IO推送值。 Foreach是IEnumerables派上用场的一个具体例子,但是这并不能解释IEnumerable或者yield或者其他什么。 Rx也一样。

能够从拉视角或推视角看东西,并且能够控制方向或手段,是非常强大的,因为现在您可以随意推拉计算,针对IO使用LINQ查询运算符来“免费”,因为它是IE的数学对偶。

0

我刚刚我第一次看的Rx,但一个有趣的项目,我会用它来创造,在我们的ASP.NET MVC的Web应用程序显示活动(这被称为动作方法的Silverlight插件,由用户等)。 Rx似乎可以帮助解决此项目中的许多问题,例如并发管理和节流。

26

Rx允许您编写一起编排并发事件的代码。如果你曾经使用过TPL(即任务),那么必须进行复杂的后空翻才能尝试ContinueWith或WaitAll来做正确的事情,Rx是为你准备的。

例如,“对于这个数组中的每个项目,调用一个Web服务,当所有这些请求都返回时,执行其他操作,如果其中任何一个失败,就会失败。

泄露,无耻插件:The book that Jesse Liberty and I wrote about Rx旨在解决这个问题,“我如何在日常工作中使用Rx?”; “我能用做什么?”

+0

这只是表明我需要或想要Rx – frostymarvelous 2017-02-05 15:55:30