ユーザーが1つの特定の画面にいる限り、実行される単純なタスクが必要です。この画面にはカウントダウンタイマーがあります。
バックグラウンドエージェントを調べましたが、それは正しいアプローチではないようです。
基本的には次のように機能するはずです。ユーザーがこの1つの画面に移動し、開始を押すと、継続タイマーがカウントダウンを開始します。30秒ごとの更新は完全に問題ありません。
WP8でこれをどのように行う必要がありますか?どうもありがとう!
ユーザーが1つの特定の画面にいる限り、実行される単純なタスクが必要です。この画面にはカウントダウンタイマーがあります。
バックグラウンドエージェントを調べましたが、それは正しいアプローチではないようです。
基本的には次のように機能するはずです。ユーザーがこの1つの画面に移動し、開始を押すと、継続タイマーがカウントダウンを開始します。30秒ごとの更新は完全に問題ありません。
WP8でこれをどのように行う必要がありますか?どうもありがとう!
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();
}
}
.NET には多数のタイマーがあります。System.Windows.Threading.DispatcherTimer はおそらくあなたが望むものですが、System.Threading.Timer もあなたが望むものかもしれません。定期的なコードをバックグラウンドで実行するか、UI スレッドで実行するかによって異なります。