private void ElapsedTimerAction(object sender, System.Timers.ElapsedEventArgs e) { lock (lockObj) { if (TimeRemainingWhite == 0 && OutOfTime != null) { OutOfTime.Invoke(this, Base.Color.White); } if (TimeRemainingBlack == 0 && OutOfTime != null) { OutOfTime.Invoke(this, Base.Color.Black); } var elapsed = Elapsed; if (Math.Abs(lastElapseUpdate - elapsed) >= 100 || (elapsed == 0 && lastElapseUpdate != 0)) { lastElapseUpdate = elapsed; if (TimeRemainingChanged != null) { TimeRemainingChanged.Invoke(this); } } } }
private void Update() { if (TimeLeft > 0) { TimeLeft -= Time.deltaTime; if (TimeLeft == 0) { Assert.IsTrue(OutOfTime != null, "Something should be listening to the timer"); OutOfTime.Invoke(); } } }