相关疑难解决方法(0)

反应式扩展是否支持滚动缓冲?

我正在使用反应式扩展将数据整理到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);
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我想要的行为与Buffer操作提供的行为略有不同.基本上,如果收到另一个数据项,我想重置计时器.只有当整个100毫秒没有收到数据时我才能处理它.这开启了永不处理数据的可能性,因此我还应该能够指定最大计数.我会想象一下:

.SlidingBuffer(TimeSpan.FromMilliseconds(100), 10000)
Run Code Online (Sandbox Code Playgroud)

我已经环顾四周,在Rx中找不到这样的东西?任何人都可以确认/否认这个吗?

.net c# buffer sliding-window system.reactive

23
推荐指数
2
解决办法
4132
查看次数

标签 统计

.net ×1

buffer ×1

c# ×1

sliding-window ×1

system.reactive ×1