public void Starter() { var simulation = new Simulation(); var patientReset = new PatientReset(); var statusReset = new StatusReset(); var writer = new KrankenHausStatisticsWriter(); var logger = new KrankenhausStatisticsFileLogger(); simulation.RecoveredAndDeathEvent += writer.TotalDeathAndRecoveredOutput; simulation.RecoveredAndDeathEvent += logger.RecoveredAndDeathsStatistics; simulation.MovedEvent += logger.MovedOutput; simulation.MovedEvent += writer.MovedStatisticOutput; //trådarna för simulationen var t1 = new Thread(simulation.Add30Patients); var t2 = new Thread(simulation.MovePatients); var t3 = new Thread(() => RandomizePatientsIllnessLevel(new Random())); var t4 = new Thread(simulation.UpdatePatientStatus); t1.Start(); t1.Join(); //låter t1 köra klart innan de andra anropas t2.Start(); t3.Start(); t4.Start(); t4.Join(); }
static void Main(string[] args) { var simulation = new Simulation(); var patientReset = new PatientReset(); var statusReset = new StatusReset(); var logger = new KrankenhausStatisticsFileLogger(); var statusCreator = new StatusCreator(); logger.ClearFile(); statusReset.ResetAll(); patientReset.Reset(); statusCreator.CreateAll(); DateTime startTime = DateTime.Now; Console.WriteLine("simulating ... \n"); simulation.Starter(); var runTime = CalculateRuntime(startTime); Console.WriteLine($"\napplication runtime: {runTime}"); Console.ReadLine(); }