/// <summary> /// Builds a <see cref="Policy"/> that will wait and retry indefinitely. /// </summary> /// <param name="policyBuilder">The policy builder.</param> /// <param name="sleepDurationProvider">The function that provides the duration to wait for for a particular retry attempt.</param> /// <returns>The policy instance.</returns> /// <exception cref="System.ArgumentNullException">sleepDurationProvider</exception> public static RetryPolicy WaitAndRetryForeverAsync(this PolicyBuilder policyBuilder, Func <int, TimeSpan> sleepDurationProvider) { if (sleepDurationProvider == null) { throw new ArgumentNullException("sleepDurationProvider"); } Action <Exception, TimeSpan> doNothing = (_, __) => { }; return(policyBuilder.WaitAndRetryForeverAsync(sleepDurationProvider, doNothing)); }