title: Handling backpressure in Rx.NET without onBackpressureLatest
body: <p>I need to implement the following algorithm in Rx.NET:</p>
  
  <ol>
  <li>Take latest item from <code>stream</code>, or wait for a new item without blocking, if there are no new items. Only the latest item matters, others can be dropped.</li>
  <li>Input the item to <code>SlowFunction</code> and print the output.</li>
  <li>Repeat from step 1.</li>
  </ol>
  
  <p>The naive solution is:</p>
  
  <pre><code>let PrintLatestData (stream: IObservable&lt;_&gt;) =
      stream.Select(SlowFunction).Subscribe(printfn "%A")
  </code></pre>
  
  <p>However, this solution does not work because on average <code>stream</code> emits items faster than <code>SlowFunction</code> can consume them. Since <code>Select</code> does not drop items but instead attempts to process every item in order from oldest to newest, the delay between an item being emitted and printed will grow towards infinity as the program run. Only the latest recent item should be taken from the stream to avoid this infinitely growing backpressure.</p>
  
  <p>I searched the documentation and found a method called <code>onBackpressureLatest</code> in RxJava, which to my understanding would do what I described above. However, the method does not exist in Rx.NET. How to implement this in Rx.NET?</p>