/// <summary> /// Beendet die Spielsimulation. /// </summary> /// <param name="ergebnis">Das Ergebnis des Spiels.</param> public void UnterbrechenOderBeenden( SimulationsStand ergebnis ) { // Prüfen if (ergebnis == SimulationsStand.Läuft) throw new ArgumentException( "ergebnis" ); // Nur, wenn wir aktiv sind if (m_stand != SimulationsStand.Läuft) return; // Zeitgeber stoppen using (m_ticker) m_ticker = null; // Gesamtzeit ermitteln m_zeitBasis = VerbrauchteZeit; // Zustand ändern m_stand = ergebnis; // Veränderung melden SpielZustandVerändert(); }
/// <summary> /// Beginnt mit der Spielsimulation. /// </summary> public void StartenOderFortsetzen() { // Nur, wenn wir nicht aktiv sind if (m_stand != SimulationsStand.Angehalten) return; // Startzeit dieses Laufs m_letzerStart = DateTime.UtcNow; // Zustand ändern m_stand = SimulationsStand.Läuft; // Zeitgeber starten using (m_ticker) m_ticker = new Timer( SimulationAusführen, new object(), TimeSpan.Zero, TimeSpan.FromMilliseconds( 10 ) ); // Veränderung melden SpielZustandVerändert(); }