title: Is there a Rx method to repeat the previous value periodically when no values are incoming?
body: <p>A use case which I have encountered, and I suspect I can't be the only one, is for a method like:</p>
  
  <pre><code>IObservable&lt;T&gt; Observable.RepeatLastValueDuringSilence(this IObservable&lt;T&gt; inner, TimeSpan maxQuietPeriod);
  </code></pre>
  
  <p>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).</p>
  
  <p>A justification would be for a service to periodically ping out a periodic status update. For example:</p>
  
  <pre><code>var myStatus = Observable.FromEvent(
      h=&gt;this.StatusUpdate+=h,
      h=&gt;this.StatusUpdate-=h);
  
  var messageBusStatusPinger = myStatus
      .RepeatLastValueDuringSilence(TimeSpan.FromSeconds(1))
      .Subscribe(update =&gt; _messageBus.Send(update));
  </code></pre>
  
  <p>Does something like this exist? Or am I over-estimating it's usefulness?</p>
  
  <p>Thanks,
  Alex</p>
  
  <p>PS: I apologise for any incorrect terminology/syntax, as I'm only just exploring Rx for the first time.</p>