ModelBuilder.UnitTests.ScenarioTests.UsesBuildLogInstancePerExecutionPipelineTest C# (CSharp) Method

UsesBuildLogInstancePerExecutionPipelineTest() private method

private UsesBuildLogInstancePerExecutionPipelineTest ( ) : void
return void
        public void UsesBuildLogInstancePerExecutionPipelineTest()
        {
            var buildStrategy = Model.BuildStrategy;

            const int MaxTasks = 100;
            var tasks = new List<Task<string>>(MaxTasks);

            for (var index = 0; index < MaxTasks; index++)
            {
                var loopIndex = index;
                var task = Task<string>.Factory.StartNew(
                    () =>
                    {
                        var strategy = buildStrategy.GetExecuteStrategy<Empty>();

                        strategy.CreateWith();

                        return "Iteration " + loopIndex + " on thread " + Thread.CurrentThread.ManagedThreadId +
                               Environment.NewLine + strategy.Log.Output;
                    });

                tasks.Add(task);
            }

            Task.WhenAll(tasks).Wait();

            for (var index = 0; index < MaxTasks; index++)
            {
                _output.WriteLine(tasks[index].Result + Environment.NewLine);
            }
        }
    }