gpt4 book ai didi

c# - Reactive Throttle 返回在 TimeSpan 内添加的所有项目

转载 作者:太空狗 更新时间:2023-10-29 20:11:16 25 4
gpt4 key购买 nike

给定一个 IObservable<T>有没有办法使用 Throttle行为(添加项目时重置计时器,但是否返回该时间内添加的所有项目的集合?

Buffer提供类似的功能,它将数据分块到 IList<T>在每个时间跨度或计数上。但是每次添加项目时我都需要时间来重置。

我在这里看到过类似的问题,Does reactive extensions support rolling buffers? ,但答案似乎并不理想,而且有点陈旧,所以我想知道 Rx-Main 的发布版本现在是否支持开箱即用的此功能。

最佳答案

作为我answered in the other post , 是的你可以!使用 ObservableThrottleWindow 方法:

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());
}

关于c# - Reactive Throttle 返回在 TimeSpan 内添加的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8849810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com