C# 与Rx.Net中的.onBackpressureBuffer()等效?
有一个源以异步方式发送项目,在我的例子中,以10个项目的顺序在几秒钟内发送C# 与Rx.Net中的.onBackpressureBuffer()等效?,c#,system.reactive,rx.net,C#,System.reactive,Rx.net,有一个源以异步方式发送项目,在我的例子中,以10个项目的顺序在几秒钟内发送 我想处理所有的问题 按出现顺序 一次一个 处理每个问题可能需要很长时间(如1-5秒) 处理一个项目时可能会有新项目 目前,我正在将一个Java应用程序移植到C。在RxJava世界中有onBackpressureBuffer方法,而在Rx.Net中有许多不同的方法,无法找出等效方法 我想我可以零延迟地使用Buffer(),并使用生成的可枚举项,但似乎有点老套 编辑:投票前请阅读评论Rx.NET不支持背压,也不能像RxJ
- 我想处理所有的问题
- 按出现顺序
- 一次一个
- 处理每个问题可能需要很长时间(如1-5秒)
- 处理一个项目时可能会有新项目
onBackpressureBuffer
方法,而在Rx.Net中有许多不同的方法,无法找出等效方法
我想我可以零延迟地使用Buffer()
,并使用生成的可枚举项,但似乎有点老套
编辑:投票前请阅读评论Rx.NET不支持背压,也不能像RxJava那样:必须设计协议,以便在生产者和消费者之间有一个请求通道。从概念上讲,异步枚举可以以逐项传递的形式(在某些情况下称为异步拉动、每项承诺、连续性等)获得反压力
有一个C#库与RxJava
Flowable
类型的特性匹配得比较好(但不是100%):它还可以与IObservable进行互操作,从而在需要时与Rx.NET进行互操作。Rx.NET不支持背压,也不能像RxJava那样:必须设计协议,以便在生产者和消费者之间有一个请求通道。从概念上讲,异步枚举可以以逐项传递的形式(在某些情况下称为异步拉动、每项承诺、连续性等)获得反压力
有一个C#库与RxJava
Flowable
类型的特性匹配得比较好(但不是100%):这也可以与IObservable
进行互操作,如果需要,也可以与Rx.NET进行互操作。我在c中想,如果你使用fromsync或async to observable,那么除非你使用ObserveOn,否则你将在单个线程上按顺序处理。@Sentinel我认为Rx通常是这样工作的。假设有两个线程。一个人生产,一个人消费,而后者需要时间去做。我不想让后者说“停止发送我,我不能处理所有的事情”,而是说“也会处理的,只是等待”。我迷路了。你为什么不观察并并行处理所有事情呢?或者,就像最近的另一个问题一样,如果你想要一个优先队列,你可以使用扫描来建立一个要处理的事情的列表,你的问题不清楚你到底想要什么?我在c#中想,如果你使用fromasync或async toobservable,那么除非你使用ObserveOn,否则你将在单个线程上按顺序处理?@Sentinel我认为RX通常是这样工作的。假设有两个线程。一个人生产,一个人消费,而后者需要时间去做。我不想让后者说“停止发送我,我不能处理所有的事情”,而是说“也会处理的,只是等待”。我迷路了。你为什么不观察并并行处理所有事情呢?或者,就像在最近的另一个问题中一样,如果你想要一个优先队列,你可以使用扫描来建立一个要处理的事情的列表。实际上,你的问题根本不清楚你想要什么