Observable.Interval wait until action is done
<p>Observable.Interval produces value every period of time. How to make it wait until action ends before the next iteration?</p>

<p>Example:</p>

<pre><code>Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe(async t =&gt; 
{
    //Here could be some long running action with different duration each iteration
    Console.WriteLine(t.ToString());
    await Task.Delay(3000);
});
</code></pre>

<p>It will start action every second. How to make it wait until action is completed?</p>