In the book IntroToRx the author suggest to write a \"smart\" retry for I/O which retry an I/O request, like a network request, after a period of time.
Here is the e
Here's the one I'm using:
public static IObservable DelayedRetry(this IObservable src, TimeSpan delay)
{
Contract.Requires(src != null);
Contract.Ensures(Contract.Result>() != null);
if (delay == TimeSpan.Zero) return src.Retry();
return src.Catch(Observable.Timer(delay).SelectMany(x => src).Retry());
}