protected override void SymbolProcessorTaskWork()
        {
            MarketDataLogger.EnableFileLogging(ProviderId);
            var thirdpartyprocessor = new ThirdPartyDelayProcessor();

            try
            {
                Parallel.ForEach(dataQueueAggregator.GetConsumingEnumerable(), data =>
                {
                    data.Processors.Add(new AverageProcessor(data.Symbol));
                    data.Processors.Add(thirdpartyprocessor);

                    data.PublishSymbolTicks(PublishMarketData);
                });
            }
            catch (AggregateException e)
            {
                foreach (var t in e.InnerExceptions)
                {
                    Trace.WriteLine("\n-------------------------------------------------\n{0}", t.ToString());
                }
            }
            finally
            {
                MarketDataLogger.Dispose();
            }
        }
        protected virtual void SymbolProcessorTaskWork()
        {
            var delay = new ThirdPartyDelayProcessor();
            Parallel.ForEach(dataQueue.GetConsumingEnumerable(), (data, loopState) =>
                {
                    if (IsCancellationRequested)
                        return; // loopState.Stop();

                    data.Processors.Add(delay);
                    data.PublishSymbolTicks(OnNewDataReceived, _cts.Token);

                });
        }