リアクティブ拡張機能を使用して、データを 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でこのようなものを見つけることができませんでしたか? 誰でもこれを確認/拒否できますか?