Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <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();
                }
            }
        }