Случай использования, с которым я столкнулся, и я подозреваю, что не могу быть единственным, для метода вроде:
IObservable<T> Observable.RepeatLastValueDuringSilence(this IObservable<T> inner, TimeSpan maxQuietPeriod);
который вернет все будущие элементы из внутреннего наблюдаемого, но также, если внутренний наблюдаемый не вызывает OnNext в течение определенного периода времени (maxQuietPeriod), он просто повторяет последнее значение (пока, конечно, внутренние вызовы OnCompleted или OnError).
Было бы оправдано, что служба периодически выдавала периодическое обновление статуса. Например:
var myStatus = Observable.FromEvent(
h=>this.StatusUpdate+=h,
h=>this.StatusUpdate-=h);
var messageBusStatusPinger = myStatus
.RepeatLastValueDuringSilence(TimeSpan.FromSeconds(1))
.Subscribe(update => _messageBus.Send(update));
Есть ли что-то подобное? Или я переоцениваю его полезность?
Спасибо, Alex
PS: Я прошу прощения за любую неправильную терминологию/синтаксис, так как я просто изучаю Rx впервые.