1

ユーザーが1つの特定の画面にいる限り、実行される単純なタスクが必要です。この画面にはカウントダウンタイマーがあります。

バックグラウンドエージェントを調べましたが、それは正しいアプローチではないようです。

基本的には次のように機能するはずです。ユーザーがこの1つの画面に移動し、開始を押すと、継続タイマーがカウントダウンを開始します。30秒ごとの更新は完全に問題ありません。

WP8でこれをどのように行う必要がありますか?どうもありがとう!

4

2 に答える 2

2

wkempf が指摘しているように、DispatcherTimer を使用する必要があります。実際に作成するのはかなり簡単です。このようなもの (xaml に countText という名前の TextBlock がある場合:

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();
    }
}
于 2012-12-14T16:35:00.860 に答える
0

.NET には多数のタイマーがあります。System.Windows.Threading.DispatcherTimer はおそらくあなたが望むものですが、System.Threading.Timer もあなたが望むものかもしれません。定期的なコードをバックグラウンドで実行するか、UI スレッドで実行するかによって異なります。

于 2012-12-14T16:08:45.480 に答える