public void Start() { lock (lockObject) { PvtTimer timer = GetTimer(); timer.Start(); Enabled = true; } }
public void Stop() { lock (lockObject) { PvtTimer timer = GetTimer(); timer.Dispose(); _timer = null; Enabled = false; } }
/// <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); } }