Вариант использования, с которым я столкнулся, и я подозреваю, что я не единственный, для метода, подобного:
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));
Существует ли что-то подобное? Или я переоцениваю -его полезность?
Спасибо, Алекс
PS :Прошу прощения за некорректную терминологию/синтаксис, так как я только впервые изучаю Rx.