public virtual void ProcessTaskResult(TaskResultData ResultData) { try { if (_dataProcessor != null && _dataProcessor.CheckIfSupported(ResultData)) { //TODO: create a periodic processing queue to bundle and submit data this.PreConvert(ResultData); var rows = _dataProcessor.Convert(ResultData); foreach (var row in rows) { _dataQueue.Enqueue(row); } if (!_processingStarted) { this.BeginProcessing(); } } } catch (Exception ex) { this.LogError("Result processing error:"); this.LogError(ex.Message); this.LogError(ex.StackTrace); } }