/// <summary> /// Stops the timer /// </summary> public void Stop() { if (Internal != null) { Internal.Dispose(); } Internal = null; IsRunning = false; }
/// <summary> /// Starts the Timer /// </summary> public void Start() { if (IsRunning) { Stop(); } Internal = new TimerInternal(HandlerInternal, State, Period); IsRunning = true; }
void HandlerInternal(object state) { if (IsRunning) { Callback(state); } if (Repeat && IsRunning) { Internal = new TimerInternal(HandlerInternal, State, Period); } else { IsRunning = false; if (Internal != null) { Internal.Dispose(); } Internal = null; } }