title: How can i slow down an Observable without throwing away values in RX?
body: <p>My scenario:
  I have a computation that should be run about once a second. After it is run there should be a wait of about 200ms for other stuff to catch up. If the compuation is still running after a second it should be started a second time, but should the program should wait until it is finished and start the next computation 200ms after finishing.</p>
  
  <p>The way I am doing it now:</p>
  
  <pre><code>_refreshFinished = new Subject&lt;bool&gt;();
  _autoRefresher = Observable.Interval(TimeSpan.FromMilliseconds(1000))
     .Zip(_refreshFinished, (x,y) =&gt; x)
     .Subscribe(x =&gt; AutoRefresh(stuff));
  </code></pre>
  
  <p>The problem with this code is, that i see no way to put in a delay after a computation finished. 
  The Delay method only delays the first element of the observable collection. Usually this behaviour is the right once, since you would have to buffer an endless amount of elements if you wanted to buffer everyone, but since delaying the call to Autorefesh by 200ms delays the output of _refreshFinished by 200ms as well there would be no buffer overhead.
  Basicly I want an Observable that fires every every MaxTime(some_call,1000ms) then gets delayed by 200ms or even better, some dynamic value. At this point i dont even really care about the values that are running through this, although that might change in the future.</p>
  
  <p>I´m open to any suggestions</p>