Example #1
0
 /// <summary>Starts a repeating timer that will be invoked indefinitely at the specified interval.</summary>
 /// <param name="interval">The timer interval.</param>
 /// <param name="callback">The timer callback.</param>
 public void Repeat(TimeSpan interval, GuiTimerCallback callback) {
    _startTimer(interval, -1, callback);
 }
Example #2
0
 /// <summary>Starts a repeating timer that will be invoked for a finite number of times at the specified interval.</summary>
 /// <param name="interval">The timer interval in milliseconds.</param>
 /// <param name="count">The number of times that the timer will be invoked.</param>
 /// <param name="callback">The timer callback.</param>
 public void Repeat(double interval, int count, GuiTimerCallback callback) {
    _startTimer(interval.MilliSeconds(), Math.Max(count, -1), callback);
 }
Example #3
0
 private void _stopTimer() {
    if (_timer != null) {
       _timer.Stop();
       _timer = null;
       _stoppedOn = DateTime.Now.Ticks;
    }
    _interval = TimeSpan.Zero;
    _callback = null;
 }
Example #4
0
 /// <summary>Starts a repeating timer that will be invoked indefinitely at the specified interval.</summary>
 /// <param name="interval">The timer interval in milliseconds.</param>
 /// <param name="callback">The timer callback.</param>
 public void Repeat(double interval, GuiTimerCallback callback) {
    _startTimer(interval.MilliSeconds(), -1, callback);
 }
Example #5
0
 /// <summary>Starts a timer that will be invoked when the application is idle.</summary>
 /// <param name="callback">The timer callback.</param>
 /// <returns>The <see cref="GuiTimer"/> object that can be used for stopping the timer. </returns>
 public static GuiTimer StartOnIdle(GuiTimerCallback callback) {
    var timer = new GuiTimer(DispatcherPriority.ApplicationIdle);
    timer.Start(callback);
    return timer;
 }
Example #6
0
      private void _startTimer(TimeSpan timespan, int maxCount, GuiTimerCallback callback) {
         Assumption.IsTrue(Application.Current.CheckAccess(), "A Gui timer can only be invoked from the Gui thread");
         Assumption.NotNull(callback);
         Assumption.IsTrue(timespan.Milliseconds >= 0, "Timer interval cannot be negative");

         _stopTimer();
         Count = 0;
         MaxCount   = maxCount;
         IsInfinite = (maxCount < 0);
         _callback  = callback;
         _interval  = timespan;
         _timer = new DispatcherTimer(Priority);
         _timer.Interval = _interval;
         _timer.Tick += _onTimerTick;
         _startedOn = DateTime.Now.Ticks;
         _timer.Start();
      }
Example #7
0
 /// <summary>Starts a timer that will be invoked after the next layout and rendering pass.</summary>
 /// <param name="callback">The timer callback.</param>
 /// <returns>The <see cref="GuiTimer"/> object that can be used for stopping the timer. </returns>
 public static GuiTimer StartAfterRender(GuiTimerCallback callback) {
    var timer = new GuiTimer(DispatcherPriority.Loaded);
    timer.Start(callback);
    return timer;
 }
Example #8
0
 /// <summary>Starts a timer that will be invoked before the next layout and rendering pass.</summary>
 /// <param name="callback">The timer callback.</param>
 /// <returns>The <see cref="GuiTimer"/> object that can be used for stopping the timer. </returns>
 public static GuiTimer StartBeforeRender(GuiTimerCallback callback) {
    var timer = new GuiTimer(DispatcherPriority.DataBind);
    timer.Start(callback);
    return timer;
 }
Example #9
0
 /// <summary>Starts a timer that will be invoked after a specified delay.</summary>
 /// <param name="delay">The timer delay.</param>
 /// <param name="callback">The timer callback.</param>
 /// <returns>The <see cref="GuiTimer"/> object that can be used for stopping the timer. </returns>
 public static GuiTimer StartAfter(TimeSpan delay, GuiTimerCallback callback) {
    var timer = new GuiTimer();
    timer.Start(delay, callback);
    return timer;
 }
Example #10
0
 /// <summary>Starts a timer that will be invoked after a specified delay.</summary>
 /// <param name="delay">The timer delay.</param>
 /// <param name="callback">The timer callback.</param>
 public void Start(TimeSpan delay, GuiTimerCallback callback) {
    _startTimer(delay, 1, callback);
 }
Example #11
0
 /// <summary>Starts a timer that will be invoked after a specified delay.</summary>
 /// <param name="delay">The timer delay in milliseconds.</param>
 /// <param name="callback">The timer callback.</param>
 public void Start(double delay, GuiTimerCallback callback) {
    _startTimer(delay.MilliSeconds(), 1, callback);
 }
Example #12
0
 /// <summary>Starts a timer that will be invoked at the priority 
 /// (i.e., after all other non-idle operations are completed).</summary>
 /// <param name="callback">The timer callback.</param>
 public void Start(GuiTimerCallback callback) {
    _startTimer(TimeSpan.Zero, 1, callback);
 }
Example #13
0
 /// <summary>Starts a repeating timer that will be invoked for a finite number of times at the specified interval.</summary>
 /// <param name="interval">The timer interval.</param>
 /// <param name="count">The number of times that the timer will be invoked.</param>
 /// <param name="callback">The timer callback.</param>
 public void Repeat(TimeSpan interval, int count, GuiTimerCallback callback) {
    _startTimer(interval, Math.Max(count, -1), callback);
 }