【发布时间】:2013-04-01 11:56:33
【问题描述】:
我正在考虑将 Rx 引入我的工作场所,但我对它了解得越多,我认为它并没有真正给你带来优势。
我们有很多服务器应用程序在一端接收输入数据并在另一端输出。这对于演员模型和“无限”线程可扩展性来说是完美的,直到现在我已经使用 ConcurrentQueues 来实现消息传递,我认为 Rx 可能是一个更好的功能性替代方案,它可以使并发更加隐式,帮助我移动一些从命令式代码到可观察对象声明的数据流决策。
但是阅读它并尝试它,我认为与使用常规旧线程和 ConcurrentQueues 进行消息传递相比没有太大优势。 Rx 给我带来了哪些优势?人们总是说,即使 .NET 4.5 使很多 Rx 过时(尽管是异步和 Dataflow),它仍然可以很好地处理事件流。什么情况下会出现事件流,如何识别它们?
【问题讨论】:
-
您可能会发现 Netflix 对 Rx 的使用值得一看,它似乎对他们很有效blogs.msdn.com/b/interoperability/archive/2013/02/05/…
-
作为一个(非常粗略的)经验法则,如果您正在处理单个值,请使用 TPL/Task api;如果您正在处理“事件”序列(通用“某事”,而不仅仅是 .net 事件),请使用 rx。我不太熟悉的数据流,我不得不考虑一下。
标签: c# system.reactive actor