private void TemporaryReaderLoop(object state) { var token = (CancellationToken)state; while (!token.IsCancellationRequested) { try { var data = _reader.GetRecord(); if (data != null && _logger.Write(data)) { _reader.RecordCompleted(); } else { token.WaitHandle.WaitOne(_sleepTime); } } catch (Exception ex) { _thisClassSupportLogger.Error(ex, "Error while working with temporary reliable storage of logs"); throw; } } }