public IThread Create()
        {
            IIterationControl iterationContext = _iterationContextFactory.Create();

            IReplayScenarioHandler handler   = _scenarioHandlerFactory.Create(iterationContext);
            IScheduler             scheduler = _schedulerFactory.Create(handler, iterationContext.ThreadId);
            IDataCollector         collector = _dataCollectorFactory.Create(iterationContext);

            IThread thread = _threadFactory.Create(scheduler, handler, collector);

            return(thread);
        }
        public IThread Create()
        {
            IIterationControl iterationContext = _iterationContextFactory.Create();

            // IScenario handler
            IScenarioHandler scenarioHandler = _scenarioHandlerFactory.Create(iterationContext);
            // Scheduler which will Sleep() thread if it needs to wait due to speed limiting strategy.
            IScheduler scheduler = _schedulerFactory.Create(iterationContext);
            // Data collector for results aggregation
            IDataCollector collector = _dataCollectorFactory.Create(iterationContext);

            IThread thread = _threadFactory.Create(scheduler, scenarioHandler, collector);

            return(thread);
        }