Exemplo n.º 1
0
        private void ParallelPreprocess()
        {
            var tasks = new PreprocessTasks();

            foreach (var script in GoalScripts)
            {
                tasks.Inputs.Enqueue(script);
            }

            PreprocessTasks[] threadTasks = new[] { tasks, tasks, tasks, tasks };
            Task.WhenAll(threadTasks.Select(task => Task.Run(() => { Preprocess(task); }))).Wait();
        }
Exemplo n.º 2
0
        private void Preprocess(PreprocessTasks tasks)
        {
            var preprocessor = new Preprocessor();

            while (tasks.Inputs.TryDequeue(out GoalScript script))
            {
                var    scriptText   = Encoding.UTF8.GetString(script.ScriptBody);
                string preprocessed = null;
                if (preprocessor.Preprocess(scriptText, ref preprocessed))
                {
                    script.ScriptBody = Encoding.UTF8.GetBytes(preprocessed);
                }
            }
        }