Rx GroupByUntil
文档说明
当出现与回收组具有相同键值的新元素时, 该小组将重生,并有新的终身要求。
我对这段代码有疑问。
myObservable.GroupByUntil(
selectKey,
g => g.Throttle( selectTimer(g.Key),
throttlingScheduler))
我的限制计时器selectTimer
在该组被重生时不会被调用。使用相同组密钥的新元素。相反,元素灌浆继续使用相同的节流计时器。
当出现相同键值的元素时,有没有办法刷新节流定时器?
答案 0 :(得分:5)
我相信你是误解GroupByUntil
。它只在新构造组时调用持续时间选择器。当duration选择器返回的observable产生一个值时,它就会结束该组。下一次项目使用该组密钥到达时,它将创建一个新组(并再次调用持续时间选择器)。
听起来你的实际问题是Throttle
。您想知道如何动态调整油门计时器。尝试Throttle
的重载,它带有一个节流持续时间选择器,每次新项目到达时它都会调用它。假设selectTimer
返回TimeSpan
:
g => g.Throttle(item => Observable.Timer(selectTimer(g.Key), throttlingScheduler))