title: IObservable to produce results in infinite loop
body: <p>This is a code that I've developed so far:</p>
  
  <pre><code>var observable = Observable.Create&lt;string&gt;(async observer =&gt;
  {
      var wc = new WebClient { UseDefaultCredentials = true };
      observer.OnNext(await wc.DownloadStringTaskAsync("http://ya.ru"));
  });
  
  observable.Subscribe(
      res =&gt; Debug.WriteLine("got result: {0}", res), 
      exc =&gt; Debug.WriteLine("exception: {0}", exc.Message)
  ); 
  </code></pre>
  
  <p>This correctly fetches website's data and triggers my callback once. What I want is to have an infinite loop that acts like this: await result -> call <code>OnNext</code> -> wait <code>n</code> seconds -> repeat an operation.  </p>
  
  <p>Creating an <code>Observable.Interval</code> and <code>SelectMany</code> it into my <code>Observable</code> won't quite do because this will be querying a website for a fixed periods of time. I want the next call to be triggered only after the previous succeeds or fails. What's the most elegant and concise way to achieve this? </p>