public void Start() { if (!loaded) { printToConsole("Nothing has been loaded. Call Load() before Start()."); return; } optimizer.Prepare(); lastTimespan = TimeSpan.Zero; optimizer.Start(); }
public void Start() { if ((ExecutionState != ExecutionState.Prepared) && (ExecutionState != ExecutionState.Paused)) { throw new InvalidOperationException(string.Format("Start not allowed in execution state \"{0}\".", ExecutionState)); } if (Optimizers.Count == 0) { return; } experimentStarted = true; experimentStopped = false; IOptimizer optimizer = Optimizers.FirstOrDefault(x => (x.ExecutionState == ExecutionState.Prepared) || (x.ExecutionState == ExecutionState.Paused)); if (optimizer != null) { // a race-condition may occur when the optimizer has changed the state by itself in the meantime try { optimizer.Start(); } catch (InvalidOperationException) { } } }