我有一堆事件進來,我必須毫不猶豫地執行所有這些事件,但我想確保它們在適當的時間段被緩衝和使用。任何人都有解決方案?什麼是使用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