Ejemplo n.º 1
0
        } // end of CurrentTime

        #endregion

        //--------------------------------------------------------------------------------------------------
        // Methods
        //--------------------------------------------------------------------------------------------------

        #region RunSimulation

        public void RunSimulation(double firstWait = 0)
        {
            _simulationRunning = true;

            if (VisualizationEnabled)
            {
                SimulationTimer.Interval = TimeSpan.FromMilliseconds(firstWait);
                SimulationTimer.Start();
            }
            else
            {
                BackgroundWorkerNonVisualization.RunWorkerAsync();
            } // end if
        }     // end of RunSimulation
Ejemplo n.º 2
0
        } // end of ActionsAfterFinishingSimulationRun

        #endregion

        #region NonVisualizationLoop

        public void NonVisualizationLoop()
        {
            DateTime originalTimerTime = CurrentTime;

            while (BackgroundWorkerNonVisualization.CancellationPending == false &&
                   !SimulationModel.StopSimulation(CurrentTime))
            {
                DateTime newTime;
                bool     modelRunning = SimulationEngine.RunSingleStepSimulationModel(_currentTime, out newTime);

                if (modelRunning)
                {
                    BackgroundWorkerNonVisualization.ReportProgress(SimulationEngine.SimulationModel.GetSimulationProgress(newTime));
                    _currentTime = newTime;
                } // end if
            }     // end while
        }         // end of
Ejemplo n.º 3
0
        }     // end of RunSimulation

        #endregion

        #region StopSimulation

        public void StopSimulation(bool pauseSim)
        {
            if (VisualizationEnabled)
            {
                SimulationTimer.Stop();
            }
            else
            {
                BackgroundWorkerNonVisualization.CancelAsync();
            } // end if

            _simulationRunning = false;

            if (!pauseSim)
            {
                ActionsAfterFinishingSimulationRun();
            } // end if
        }     // end of StopSimulation