我使用的反應擴展到數據整理成的100ms的緩衝:反應式擴展程序是否支持滾動緩衝區?
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中找不到這樣的東西?任何人都可以確認/否認這一點?
我確定我在Rx上的其中一個教程視頻中看到了這種行爲,但恐怕我不記得在哪裏或哪個位置。 :( – Chris
啊,油門(http://msdn.microsoft.com/en-us/library/hh229298%28v=vs.103%29.aspx)是我在想什麼,但我不認爲這是做什麼你需要的是自己的,不知道是否有某種方法可以將它結合起來做想要的事情... – Chris