我有一堆事件进来,我必须毫不犹豫地执行所有这些事件,但我想确保它们在适当的时间段被缓冲和使用。任何人都有解决方案?什么是使用Observable“限制”消费的最佳方式?
我找不到任何的Rx运营商可以做,没有事件的损失(油门 - 失去的事件)。我也考虑过缓冲,延迟等等......找不到一个好的解决方案。
我试图把一个计时器在中间,但不知何故,没有在所有的工作:
GetInitSequence()
.IntervalThrottle(TimeSpan.FromSeconds(5))
.Subscribe(
item =>
{
Console.WriteLine(DateTime.Now);
// Process item
}
);
public static IObservable<T> IntervalThrottle<T>(this IObservable<T> source, TimeSpan dueTime)
{
return Observable.Create<T>(o =>
{
return source.Subscribe(x =>
{
new Timer(state =>
o.OnNext((T)state), x, dueTime, TimeSpan.FromMilliseconds(-1));
}, o.OnError, o.OnCompleted);
});
}
你可以添加一个大理石运营商digram显示你有什么,以及你想要什么?像其他人一样,我不确定你想要实现什么,因为我认为缓冲区就好。 –
你是什么限制? – Fredrick