我了解 Rx 的基础知识。我感到困惑的是,除了学术示例之外,您将如何实际使用它?在哪些常见、简单的现实场景中,Rx 是比我们今天在 .NET 中使用的解决方案更好的解决方案?

有帮助吗?

解决方案

有关一堆很好的例子,请参阅 101个的Rx样品维基

其他提示

的Rx允许你写代码编排并发事件一起。如果你曾经使用过的TPL(即任务),然后不得不做曲后空翻尝试ContinueWith或为WaitAll在正确的事情,RX是给你的。

例如,工作流“对于这个阵列中的每个项目,调用Web服务,当所有这些请求的回来,做别的事情。如果他们中的任何一个失败,失败了整个事情。”

公开的,无耻的插头进取:的书,杰西自由和我写的Rx 的目的是要解决究竟这个问题,“我怎么在我的一天到一天的工作中使用的Rx?”; “我能的的这件事?”

首先,的IObservable的是一个事件即可。因此,在您使用事件内部的任何地方,你可以使用的IObservable - 如果你以后需要LINQ适用于这种情况下,你能做到这一点,而不重构

二,RX是适用于任何情况下,当你需要在你的代码的 asynchronousely 。例如,调用web服务,或加载一个大的图像。

但是,当真正开始闪耀 - 如果你的程序达到的IObservable使用的一些“临界质量”,你开始的合并不同的观测,你会惊奇地发现轻松一些任务变得

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

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

R x是很一般的,因此具有无限的效用,就像的IEnumerable / IEnumerator的具有无限的效用。 IE拉值,IO推值。

FOREACH是其中IEnumerables派上用场一个具体的例子,但是,这并不解释IEnumerable的,或产生或任何东西。同去,其中Rx。

如果能够看到从任的观点拉伸点,或视推点东西,并能控制方向和手段,是非常强大的,因为现在你可以推拉的计算各地的意愿,使用LINQ查询运算符为“免费”,针对一个IO,因为它的数学双IE的。

我刚刚在我的Rx先来看看,但一个有趣的项目,我会用它正在创建一个Silverlight小部件在我们的ASP.NET MVC的Web应用程序(该操作方法被称为是显示活动,由用户等)。这似乎是R x可以用很多东西在这个项目中,如并发管理和节流帮助。

scroll top