/// <summary>
        /// This method is firing the TimerEvent.
        /// </summary>
        /// <param name="hint">Hint containing information about the timer and the type of event fired.</param>
        internal void OnTimerEvent(TimerHint hint)
        {
            var timerEvent = this.TimerEvent;

            if (timerEvent != null)
            {
                EventHandlerStopTimer stopTimerDelegate = null;

                if (this.timerInfos.ContainsKey(hint.Name))
                {
                    stopTimerDelegate = this.timerInfos[hint.Name].StopTimer;
                }

                var timerEventArgs = new TimerEventArgs(hint, stopTimerDelegate);

                timerEvent(this, timerEventArgs);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="TimerEventArgs"/> class.
 /// </summary>
 /// <param name="hint">The hint.</param>
 /// <param name="stopTimerDelegate">The stop timer delegate.</param>
 public TimerEventArgs(TimerHint hint, EventHandlerStopTimer stopTimerDelegate)
 {
     this.hint = hint;
     this.stopTimerDelegate = stopTimerDelegate;
 }