Я использую реактивные расширения для сортировки данных в буферы по 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?Кто-нибудь может подтвердить / опровергнуть это?