反应性扩展使用的好例子

Kei*_*ill 78 .net c# system.reactive

我理解Rx的基础知识.我正在努力的是你如何在学术范例之外实际使用它?什么是常见的,简单的现实场景,其中Rx是比我们今天在.NET中更好的解决方案?

sbl*_*lom 41

有关一组很好的示例,请参阅101 Rx示例维基

  • 谢谢你的链接.那里有一些非常好的样品.仍然没有看到头扒 - "哦,这是解决的规范问题"样本.然后,再次,可能只是让我慢慢接受. (12认同)
  • 哼......尽管得分很高,但这个答案仍然只是"链接".你或许可以把它充实一点吗? (8认同)

Ana*_*tts 26

Rx允许您编写将并发事件编排在一起的代码.如果你曾经使用过TPL(即任务),那么不得不做一个复杂的后空翻试图在正确的事情上尝试ContinueWith或WaitAll,Rx适合你.

例如,"对于此阵列中的每个项目,调用Web服务,当所有这些请求都返回时,执行其他操作.如果其中任何一个失败,则无法完成所有操作".

披露,无耻的插件: Jesse Liberty和我写的关于Rx的书旨在解决这个问题,"我如何在日常工作中使用Rx?"; "我该怎么?"


Ser*_*hov 25

首先,IObservable 是一个事件.因此,在内部使用事件的任何地方,您都可以使用IObservable - 如果您以后需要将LINQ应用于此事件,则可以在不重构的情况下执行此操作.

其次,当您需要异步运行代码时,RX适用于任何情况.例如,调用Web服务或加载大图像.

但是当它真正开始闪耀时 - 如果你的程序达到IObservable使用的一些"临界质量"并且你开始组合不同的可观察量,你会惊讶一些任务变得多么容易.


Sco*_*ein 5

  • 设备测量
  • 数据通过消息总线输入

现在,在这两种情况下,接收数据的标准方式都是通过事件,但是如果我要查询语法或组合,则RX在不需要事件的地方给我。