Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        private void Clock_ClockTick()
        {
            parentTicksBeforeTick--;
            if (parentTicksBeforeTick > 0)
            {
                return;
            }

            parentTicksBeforeTick = clockDivisor;
            ClockTick?.Invoke();
        }
Ejemplo n.º 3
0
 public void Tick_7_PM()
 {
     ClockTick?.Invoke(this, new ClockEventArgs {
         Time = new DateTime(1970, 1, 1, 19, 00, 00)
     });
 }
Ejemplo n.º 4
0
 /// <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);
 }