private void RemoveExpiredWrappers() { Task.Run(() => { var now = _clock.UtcNow; var toRemove = _requestWrappers .Where(kvp => kvp.Value.ExpiresAfter >= now) .ToArray(); foreach (var kvp in toRemove) { RemoveWrapper(kvp.Key); _logger.Debug("Removing request {0} which timed out at {1}", kvp.Key, kvp.Value.ExpiresAfter); } }); }