/// <summary> /// Run all simulations in the specified 'fileName' in a serial mode. /// i.e. don't use the multi-threaded JobManager. Useful for profiling. /// </summary> /// <param name="fileName"> the name of file to run </param> private static void RunSingleThreaded(string fileName) { Simulations simulations = Simulations.Read(fileName); // Don't use JobManager - just run the simulations. Simulation[] simulationsToRun = Simulations.FindAllSimulationsToRun(simulations); foreach (Simulation simulation in simulationsToRun) { simulation.Run(null, null); } }
/// <summary> /// Perform the command /// </summary> public void Do(CommandHistory CommandHistory) { IsRunning = true; if (!DuplicatesFound()) { stopwatch.Start(); if (modelClicked is Simulations) { simulations.SimulationToRun = null; // signal that we want to run all simulations. numSimulationsToRun = Simulations.FindAllSimulationsToRun(simulations).Length; } else { simulations.SimulationToRun = modelClicked; numSimulationsToRun = Simulations.FindAllSimulationsToRun(modelClicked).Length; } if (explorerPresenter != null) { explorerPresenter.ShowMessage(modelClicked.Name + " running (" + numSimulationsToRun + ")", Models.DataStore.ErrorLevel.Information); } if (numSimulationsToRun > 1) { timer = new Timer(); timer.Interval = 1000; timer.Tick += OnTimerTick; } jobManager.AddJob(simulations); jobManager.AllJobsCompleted += OnComplete; jobManager.Start(waitUntilFinished: false); if (numSimulationsToRun > 1) { timer.Start(); } } }