11

動作IObservable<T>を使用する方法がありThrottleます (アイテムが追加されたときにタイマーをリセットしますが、その時間内に追加されたすべてのアイテムのコレクションを返すようにしますか?

Buffer同様の機能を提供し、タイムスIList<T>パンまたはカウントごとにデータをチャンクアップします。しかし、アイテムが追加されるたびにリセットする時間が必要です。

ここで同様の質問を見てきました。リアクティブ拡張機能はローリング バッファをサポートしていますか? 、しかし答えは理想的ではないようで、少し古いので、Rx-Mainのリリースバージョンがすぐにこの機能をサポートするようになったかどうか疑問に思いました。

4

3 に答える 3

13

他の投稿で答えたように、はい、できます! のThrottleおよびWindowメソッドの使用Observable:

public static IObservable<IList<T>> BufferUntilInactive<T>(this IObservable<T> stream, TimeSpan delay)
{
    var closes = stream.Throttle(delay);
    return stream.Window(() => closes).SelectMany(window => window.ToList());
}
于 2012-03-20T17:28:55.250 に答える
0

うまくいきませんか

Observable.BufferWithTimeOrCount<TSource> Method (IObservable<TSource>, TimeSpan, Int32)?

于 2012-01-13T12:19:12.147 に答える