public void Start(List <BenchmarkInstance> benchmarks)
        {
            if (benchmarks.Count == 0)
            {
                throw new ArgumentException("There are no benchmarks to execute");
            }

            if (_running)
            {
                Stop();
            }
            _running = true;

            _results.Clear();
            NotifyUpdated(ExecutionState.Running);

            // Create requested test strategy
            if (_configuration.ExecutionType == ExecutionType.Sequential)
            {
                _strategy = new SequencialExecutionStrategy(_configuration, _results, this, benchmarks);
            }
            else
            {
                _strategy = new ProportionalExecutionStrategy(_configuration, _results, this, benchmarks);
            }

            _strategy.Start();
        }