protected void WaitBetweenFailedRequests(ref TimeSpan previousRetryDelay) { previousRetryDelay = previousRetryDelay + NetworkRetryWaitStep; if (previousRetryDelay > NetworkRetryWaitMax) previousRetryDelay = NetworkRetryWaitMax; using (var failedRequestWait = new ManualResetEventSlim()) failedRequestWait.Wait(previousRetryDelay, cancellationTokenSource.Token); }