有一个源以异步方式发出项目,在我的情况下以10个项目的顺序发出几秒钟。
目前我正在将Java应用程序移植到C#。在RxJava世界中有onBackpressureBuffer
方法,而在Rx.Net中有许多不同的方法,无法找出等效方法。
我想我可以使用Buffer()
零延迟并使用生成的可枚举,但似乎是hacky。
编辑:请在投票前阅读评论
答案 0 :(得分:1)
Rx.NET不支持背压,它不能像RxJava那样:人们必须设计协议,以便在生产者和消费者之间有一个请求通道。在概念上,Async Enumerables可以以1-by-1项目交付的形式为您提供背压(在某些情况下称为异步拉动,每个项目的承诺,延续等)。
有一个C#库与RxJava Flowable
类型的功能相对匹配(但不是100%):Reactive4.NET,它们也可以与IObservable
互操作,因此与Rx互操作。 NET,如果需要的话。