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); }