private static void RepeatTillTimeout(VoidFunction voidFunction, TimeSpan timeout, IBackoffPolicy backoffPolicy) { var stopwatch = Stopwatch.StartNew(); while (stopwatch.Elapsed < timeout) { try { voidFunction(); } catch (Exception e) { Trace.WriteLine(e); } backoffPolicy.Wait(); } }