public GherkinProcessingScheduler(IIdeTracer tracer, bool enableAnalysis) { this.tracer = tracer; parserQueue = new IdleTaskProcessingQueue(parsingDelay, true, tracer, DoTask); parserQueue.Start(); if (enableAnalysis) { analyzerQueue = new IdleTaskProcessingQueue(analyzingDelay, false, tracer, DoTask); analyzerQueue.Start(); } }
public void Dispose() { if (analyzerQueue != null) { var queue = analyzerQueue; analyzerQueue = null; // we set the field to null first, to avoid scheduling during dispose queue.Dispose(); } if (parserQueue != null) { var queue = parserQueue; parserQueue = null; // we set the field to null first, to avoid scheduling during dispose queue.Dispose(); } }