Ejemplo n.º 1
0
 public void Start()
 {
     lock (lockObject)
     {
         PvtTimer timer = GetTimer();
         timer.Start();
         Enabled = true;
     }
 }
Ejemplo n.º 2
0
        public void Stop()
        {
            lock (lockObject)
            {
                PvtTimer timer = GetTimer();

                timer.Dispose();
                _timer  = null;
                Enabled = false;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets the current internal timer or creates a new one if the last one disposed itself.
        /// </summary>
        /// <returns></returns>
        private PvtTimer GetTimer()
        {
            lock (lockObject)
            {
                if (_timer == null ||
                    _timer.IsDisposed ||
                    _timer.IsDisposing)
                {
                    _timer = new PvtTimer()
                    {
                        Interval  = this.Interval,
                        Enabled   = this.Enabled,
                        AutoReset = this.AutoReset
                    };

                    _timer.Elapsed += _timer_Elapsed;
                }
                return(_timer);
            }
        }