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();
        }