Esempio n. 1
0
        private async Task RunWorker()
        {
            var analyzer = new OutOfProcProjectAnalyzer(
                Console.OpenStandardOutput(),
                Console.OpenStandardInput(),
                Console.Error.WriteLine
                );

            await analyzer.ProcessMessages();
        }
Esempio n. 2
0
        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();
            }
        }