49

Microsoft 使用 .NET Framework 4 引入了BCLIObservable<T>接口,我想,“太好了,终于,我必须使用它!” 所以我深入挖掘并阅读了帖子和文档,甚至实现了这个模式。

这样做之后,我意识到基本实现实际上将所有T事件发送给它的所有订阅者,而没有对其进行任何过滤;即普通广播。我在某处读到 Observable 模式适用于普通广播。我觉得这不是真的,我错过了一些东西。

我的问题:

  1. 如果我添加一个过滤机制,那么使用 Observable 模式和只使用普通 CLR 事件有什么区别?

  2. 什么时候应该使用这种模式,什么时候应该选择使用普通的 CLR 事件?

  3. Observable 模式的主要优点是什么?

4

1 回答 1

31

Observable 是Rx 库的基石。它们提供了您需要的几乎所有实现和操作符。IObservable<T>背后的想法Rx不仅仅是事件的“处理”,而是启用“LINQ to Events”。因此,您可以轻松编写“事件流”,与常规事件处理相比,这为您提供了强大的功能。

请注意,示例 MSDN 实现IObservable<T>正确;已通知文档团队。

于 2010-07-06T14:17:28.267 回答