我正在使用响应式扩展将数据整理到 100 毫秒的缓冲区中:
this.subscription = this.dataService
.Where(x => !string.Equals("FOO", x.Key.Source))
.Buffer(TimeSpan.FromMilliseconds(100))
.ObserveOn(this.dispatcherService)
.Where(x => x.Count != 0)
.Subscribe(this.OnBufferReceived);
这工作正常。但是,我想要的行为与操作提供的行为略有不同Buffer
。本质上,如果收到另一个数据项,我想重置计时器。只有当整个 100 毫秒都没有收到数据时,我才想处理它。这开启了从不处理数据的可能性,因此我也应该能够指定最大计数。我会想象一些类似的东西:
.SlidingBuffer(TimeSpan.FromMilliseconds(100), 10000)
我环顾四周,在 Rx 中找不到类似的东西?任何人都可以确认/否认这一点吗?