0

So I am trying to change the time interval for a dispatcher time. I tried to change the timer by using a dependency property.

See below code:

    public static readonly DependencyProperty TimeProperty = DependencyProperty.Register("TimeInterval", typeof(int), typeof(MainWindow));
    private int TimersInterval = 200;
    private int TimeInterval
    {
        get { return (int)GetValue(TimeProperty); }
        set { SetValue(TimeProperty, TimersInterval); }
    }

I have tried to change the TimersInterval when a button is clicked to "fast forward":

            if (TimersInterval <1000)
            {
                TimersInterval += 100;
            }
            else
            {
                MessageBox.Show("Not Legit");
            }

The TimersInterval changes but the timers interval doesnt seem to increase.

Thanks for any help!

edit (sorry forgot to add this):

        aTimer = new System.Windows.Threading.DispatcherTimer();
        aTimer.Interval = new TimeSpan(0, 0, 0, 0, TimersInterval);
        TimerEvent = (s, t) => onTimedEvent(sender, t, newParticle, newEnvironment);
        aTimer.Tick += TimerEvent;
ISoBad
  • 15
  • 7

1 Answers1

2

The TimeInterval dependency property is useless here. Just change the Interval property of your DispatcherTimer:

if (TimersInterval < 1000)
{
    TimersInterval += 100;
    aTimer.Interval = TimeSpan.FromMilliseconds(TimersInterval);
}
...

Perhaps you do not even need the TimersInterval property:

if (aTimer.Interval.TotalMilliseconds < 1000)
{
    aTimer.Interval += TimeSpan.FromMilliseconds(100);
}
Clemens
  • 123,504
  • 12
  • 155
  • 268