private void ClockLoop() { if (ClockTick == null) { throw new InvalidOperationException("Can not start clock with no tick listeners"); } timer.Start(); ticksForNextClock = timer.ElapsedTicks + ticksPerClock; ticksForNextOneSecond = timer.ElapsedTicks + ticksPerOneSecond; while (run) { long currentTicks = timer.ElapsedTicks; if (currentTicks < ticksForNextClock) { continue; } totalTicks++; ticksForNextClock += ticksPerClock; ClockTick.Invoke(); if (currentTicks >= ticksForNextOneSecond) { ticksForNextOneSecond += ticksPerOneSecond; OneSecondTick?.Invoke(); } } timer.Stop(); }
private void Clock_ClockTick() { parentTicksBeforeTick--; if (parentTicksBeforeTick > 0) { return; } parentTicksBeforeTick = clockDivisor; ClockTick?.Invoke(); }
public void Tick_7_PM() { ClockTick?.Invoke(this, new ClockEventArgs { Time = new DateTime(1970, 1, 1, 19, 00, 00) }); }
/// <summary> /// Methods that calls event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void OnClockTick(object sender, ClocTickEventArgs e) { ClockTick?.Invoke(sender, e); }