IObservable与平原事件或为什么我应该使用IObservable?
微软向.NET Framework 4引入了BCL的IObservable<T>
接口 ,我想,“好极了,我必须使用它!” 所以我深入挖掘并阅读文章和文档,甚至实施了这个模式。
这样做后,我意识到,基本的实现实际上发送所有的T
事件到所有的用户没有任何过滤, 即普通广播。 我在某处读到Observable模式是为了普通广播。 我觉得这不是真的,我错过了一些东西。
我的问题:
-
如果我添加一个过滤机制,使用Observable模式和使用纯CLR事件有什么区别?
-
什么时候应该使用这种模式,什么时候应该select使用简单的CLR事件?
-
Observable模式的主要优点是什么?
可观察是Rx库的基石。 它们提供了几乎所有需要的实现和操作符。 IObservable<T>
和Rx
背后的想法不仅仅是事件的“处理”,而是“LINQ to事件”。 因此,您可以轻松撰写“事件stream”,与常规事件处理相比,它可以为您提供大量的function。
请注意, IObservable<T>
的示例MSDN实现不正确 ; 文档组已被通知。