//UI thread /// <summary> /// Constructor /// </summary> public MySimulationHandler(MySimulation simulation) { State = SimulationState.STOPPED; ReportInterval = 20; SleepInterval = 0; m_speedMeasureInterval = 2000; AutosaveInterval = 10000; Simulation = simulation; m_worker = new BackgroundWorker { WorkerReportsProgress = true, WorkerSupportsCancellation = true }; m_worker.DoWork += m_worker_DoWork; m_worker.RunWorkerCompleted += m_worker_RunWorkerCompleted; }
public MyProjectRunner(MyLogLevel level = MyLogLevel.DEBUG) { MySimulation simulation = TypeMap.GetInstance <MySimulation>(); SimulationHandler = new MySimulationHandler(simulation); m_resultIdCounter = 0; SimulationHandler.ProgressChanged += SimulationHandler_ProgressChanged; SimulationHandler.StepPerformed += SimulationHandler_StepPerformed; m_monitors = new List <Tuple <int, uint, MonitorFunc> >(); m_results = new Hashtable(); Project = new MyProject(); var path = MyResources.GetEntryAssemblyPath(); if (MyConfiguration.ModulesSearchPath.Count == 0) { MyConfiguration.SetupModuleSearchPath(); } MyConfiguration.ProcessCommandParams(); try { if (MyConfiguration.Modules.Count == 0) { MyConfiguration.LoadModules(); } } catch (Exception e) { MyLog.WARNING.WriteLine(e.Message); throw; } MyLog.Level = level; }
//UI thread /// <summary> /// Constructor /// </summary> public MySimulationHandler(MySimulation simulation) { State = SimulationState.STOPPED; SimulationSpeed = 0; ReportIntervalSteps = 100; ReportInterval = 20; SleepInterval = 0; m_speedMeasureIntervalMillisec = 998; // Almost 1 second (to prevent some races). AutosaveInterval = 10000; Simulation = simulation; m_workedCompleted = new ManualResetEvent(true); m_worker = new BackgroundWorker { WorkerReportsProgress = true, WorkerSupportsCancellation = true }; m_worker.DoWork += m_worker_DoWork; m_worker.RunWorkerCompleted += m_worker_RunWorkerCompleted; }
public void OnModelChanged(object sender, MySimulation.ModelChangedEventArgs args) { if (args.Node == Target) ReloadContent(); }