使用 Rx 库进行响应式编程:委托与序列构建
1. 热与冷可观察对象
在响应式编程中,我们可能会遇到热和冷可观察对象的混合情况。有些冷源也具有热的特性,例如一个代表警报消息的源。可以将其实现为存储警报,确保在创建源和附加订阅者之间不会错过任何事件。新订阅者会获取到目前为止的所有事件,一旦订阅者赶上进度,后续行为就更像热源,新事件会广播给所有当前订阅者。Rx 库提供了多种方式来混合和适配这两种类型的源。
2. 使用委托进行发布和订阅
如果使用 System.Reactive NuGet 包,就无需直接实现 IObservable<T> 或 IObserver<T> 。该库提供了多种实现,包括适配器和包装现有可观察流的实现,还能帮助编写生成新项或作为项最终目的地的代码。最简单的帮助器提供了基于委托的 API 来创建和消费可观察流。
2.1 使用委托创建可观察源
虽然 IObservable<T> 是一个简单的接口,但实现它的源可能需要做大量工作来跟踪订阅者。Rx 库可以帮助我们完成一些工作,例如使用 Observable 类的静态 Create 方法来实现冷源。
以下是一个示例代码:
public static IObservable<string> GetFilePusher(string path, Canc
超级会员免费看
订阅专栏 解锁全文
7778

被折叠的 条评论
为什么被折叠?



