user387184
user387184

Reputation: 11053

How to schedule a repeating task to count down a number in windows phone 8

I need to just have a simple task that runs as long as the user is on one specific screen. On this screen there is a count down timer.

I looked into Background Agents - but that seems not to be the right approach.

Basically it should work like this: The user goes to this one screen, presses start and the cont down timer starts to count down - every 30 seconds update is perfectly ok.

How should I do this on WP8 ?

Upvotes: 1

Views: 1722

Answers (2)

Bryant
Bryant

Reputation: 8670

You should use a DispatcherTimer as wkempf points out. Pretty simple to create actually. Something like this (where you have a TextBlock named countText in your xaml:

public partial class MainPage : PhoneApplicationPage
{
    private DispatcherTimer _timer;
    private int _countdown;

    // Constructor
    public MainPage()
    {
        InitializeComponent();

        _countdown = 100;
        _timer = new DispatcherTimer();
        _timer.Interval = TimeSpan.FromSeconds(1);
        _timer.Tick += (s, e) => Tick();
        _timer.Start();
    }

    private void Tick()
    {
        _countdown--;

        if (_countdown == 0)
        {
            _timer.Stop();
        }

        countText.Text = _countdown.ToString();
    }
}

Upvotes: 2

wekempf
wekempf

Reputation: 2788

There are numerous Timers in .NET. System.Windows.Threading.DispatcherTimer is probably what you want, but System.Threading.Timer might be what you want as well. Depend on whether you want to run the periodic code in the background or on the UI thread.

Upvotes: 0

Related Questions