Rx.Net 中的 .onBackpressureBuffer() 是否等效?
Equivalent of .onBackpressureBuffer() in Rx.Net?
有一个异步发出项目的源,在我的例子中是在几秒钟内按 10 个项目的顺序。
- 我想全部搞定。
- 按出场顺序
- 一次一个
- 处理每个可能需要很长时间(例如 1-5 秒)
- 处理中可能有新物品
目前我正在将 Java 应用程序移植到 C#。在 RxJava 世界中有 onBackpressureBuffer
方法,而在 Rx.Net 中有一堆不同的方法,无法找出等效的方法。
我想我可以零延迟地使用 Buffer()
并使用生成的可枚举对象,但似乎很老套。
编辑:请在投反对票之前阅读评论
Rx.NET 不支持背压,它不能像 RxJava 那样:必须设计协议,以便在生产者和消费者之间有一个请求通道。从概念上讲,Async Enumerables 可以以 1 对 1 项目交付的形式为您带来背压(在某些情况下称为异步拉取、按项目承诺、延续等)。
有一个 C# 库与 RxJava Flowable
类型的特性相匹配(但不是 100%):Reactive4.NET 也可以与 IObservable
互操作,因此与Rx.NET 如果需要。
有一个异步发出项目的源,在我的例子中是在几秒钟内按 10 个项目的顺序。
- 我想全部搞定。
- 按出场顺序
- 一次一个
- 处理每个可能需要很长时间(例如 1-5 秒)
- 处理中可能有新物品
目前我正在将 Java 应用程序移植到 C#。在 RxJava 世界中有 onBackpressureBuffer
方法,而在 Rx.Net 中有一堆不同的方法,无法找出等效的方法。
我想我可以零延迟地使用 Buffer()
并使用生成的可枚举对象,但似乎很老套。
编辑:请在投反对票之前阅读评论
Rx.NET 不支持背压,它不能像 RxJava 那样:必须设计协议,以便在生产者和消费者之间有一个请求通道。从概念上讲,Async Enumerables 可以以 1 对 1 项目交付的形式为您带来背压(在某些情况下称为异步拉取、按项目承诺、延续等)。
有一个 C# 库与 RxJava Flowable
类型的特性相匹配(但不是 100%):Reactive4.NET 也可以与 IObservable
互操作,因此与Rx.NET 如果需要。