Beispiel #1
0
        public void runThreadedSimulation(Simulation simulation, ISimulationListener listener)
        {
            lock (runningSimulations)
            {
                bool contains = false;
                foreach (SimulatorThread s in runningSimulations)
                {
                    if (s.simulation == simulation)
                    {
                        contains = true;
                        break;
                    }
                }
                if (!contains)
                {

                    simulation.setSimulationListener(listener);

                    //start a thread for the simulation and return
                    SimulatorThread threadTarget = new SimulatorThread(simulation);
                    Thread newThread = new Thread(new ThreadStart(threadTarget.run));
                    threadTarget.runningThread = newThread;
                    runningSimulations.AddLast(threadTarget);
                    newThread.Start();
                }
            }
        }