private async Task RunWorker() { var analyzer = new OutOfProcProjectAnalyzer( Console.OpenStandardOutput(), Console.OpenStandardInput(), Console.Error.WriteLine ); await analyzer.ProcessMessages(); }
internal AnalysisQueue(OutOfProcProjectAnalyzer analyzer) { _workEvent = new AutoResetEvent(false); _cancel = new CancellationTokenSource(); _analyzer = analyzer; _queue = new List <IAnalyzable> [PriorityCount]; for (int i = 0; i < PriorityCount; i++) { _queue[i] = new List <IAnalyzable>(); } _workThread = new Thread(Worker); _workThread.Name = "Python Analysis Queue"; _workThread.Priority = ThreadPriority.BelowNormal; _workThread.IsBackground = true; // start the thread, wait for our synchronization context to be created using (AutoResetEvent threadStarted = new AutoResetEvent(false)) { _workThread.Start(threadStarted); threadStarted.WaitOne(); } }