A use case which I have encountered, and I suspect I can't be the only one, is for a method like:
IObservable<T> Observable.RepeatLastValueDuringSilence(this IObservable<T> inner, TimeSpan maxQuietPeriod);
which would return all the future items from the inner observable, but also, if the inner observable doesn't call OnNext for a certain period of time (maxQuietPeriod), it just repeats the last value (until of course inner calls OnCompleted or OnError).
A justification would be for a service to periodically ping out a periodic status update. For example:
var myStatus = Observable.FromEvent(
h=>this.StatusUpdate+=h,
h=>this.StatusUpdate-=h);
var messageBusStatusPinger = myStatus
.RepeatLastValueDuringSilence(TimeSpan.FromSeconds(1))
.Subscribe(update => _messageBus.Send(update));
Does something like this exist? Or am I over-estimating it's usefulness?
Thanks, Alex
PS: I apologise for any incorrect terminology/syntax, as I'm only just exploring Rx for the first time.