Ejemplo n.º 1
0
        public void AddLateAtStartup(double interval, CustomElapsedEventHandler elapsed, double delay,
                                     bool firstImmediateStart = false)
        {
            Add(interval, elapsed, firstImmediateStart, false);

            var dicItem = timers.Last();

            Timer delayTimer = new Timer();

            delayTimer.Interval = delay;
            delayTimer.Elapsed += (s, e) =>
            {
                try
                {
                    (s as Timer).Stop();

                    Start(dicItem.Key);
                }
                finally
                {
                    (s as Timer).Dispose();
                }
            };

            delayTimer.Start();
        }
Ejemplo n.º 2
0
        private void wrapperTimer_Elapsed(object sender, ElapsedEventArgs e, CustomElapsedEventHandler elapsed, double intervalo)
        {
            Timer timer = sender as Timer;

            timer.Stop();

            CustomElapsedEventArgs args = new CustomElapsedEventArgs();

            elapsed(timer, args);

            if (!args.Stop)
            {
                timer.Interval = intervalo;
                timer.Start();
            }
        }
Ejemplo n.º 3
0
        public void Add(double interval, CustomElapsedEventHandler elapsed, bool autostart = true, bool firstImmediateStart = false)
        {
            Timer timer = new Timer();

            timer.Interval = firstImmediateStart ? 1 : interval;
            timer.Elapsed += (s, e) => wrapperTimer_Elapsed(s, e, elapsed, interval);

            bool iniciado = false;

            if (autostart)
            {
                timer.Start();
                iniciado = true;
            }

            timers.Add(timer, iniciado);
        }