internal async Task ProcessLogQueue(object state) { var logItems = new List <LogItem>(200); while (!_cancellationTokenSource.IsCancellationRequested) { try { _logQueue.GetReportedLogs(logItems); if (logItems.Any()) { await _logServiceClient.ReportAsync(logItems); } else { await Task.Delay(_options.TimeToSleepBetweenBatches, _cancellationTokenSource.Token); } } catch (AccessTokenException e) { if (Debugger.IsAttached) { Debug.WriteLine($"{e.Message}, {e.StackTrace}"); } await Task.Delay(60000); } catch (Exception e) { if (Debugger.IsAttached) { Debug.WriteLine($"{e.Message}, {e.StackTrace}"); } await Task.Delay(60000); } } }