private void BenchmarkIterationStart(BenchmarkIterationStartArgs args)
        {
            if (args.RunId != _runid)
                return;

            if (_currentTestCase != null)
                throw new InvalidOperationException(args.TimeStampRelativeMSec.ToString());

            _currentTestCase = args.BenchmarkName;
            _currentIteration = args.Iteration;
            _currentProcesses.Add(args.ProcessID);

            var evaluators = _evaluators.GetOrDefault(_currentTestCase);
            if (evaluators != null)
            {
                foreach (var evaluator in _evaluators[_currentTestCase])
                    evaluator.Value.BeginIteration(args);
            }
        }
        private void BenchmarkIterationStart(BenchmarkIterationStartArgs args)
        {
            if (args.RunId != _runid)
                return;

            if (_currentTestCase != null)
                throw new InvalidOperationException(args.TimeStampRelativeMSec.ToString());

            _currentTestCase = args.BenchmarkName;
            _currentIteration = args.Iteration;
            _currentProcesses.Add(args.ProcessID);
            _currentThread = args.ThreadID;

            string scenarioName = $"{args.BenchmarkName} Iteration {args.Iteration.ToString()}";
            double scenarioStartTime = args.TimeStampRelativeMSec;
            _currentScenarioRange = new ScenarioRange() { ScenarioName = scenarioName, ScenarioStartTime = scenarioStartTime };

            var evaluators = _evaluators.GetOrDefault(_currentTestCase);
            if (evaluators != null)
            {
                foreach (var evaluator in _evaluators[_currentTestCase])
                    evaluator.Value.BeginIteration(args);
            }
        }