1
カウントダウンタイマーを2時間半刻々と開始したい。ディスパッチャータイマーを使って試しましたWP7でカウントダウンタイマー
以下のコードを見てください。しかし、秒が正しく更新されていません。それは速すぎる。一度に1秒ではなく2秒を目安にします
private void DrawBlackout()
{
TextBlock videoText = new TextBlock();
dt = new DispatcherTimer();
dt.Interval = new TimeSpan(0,0,1); // 1 Seconds
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
}
void dt_Tick(object sender, EventArgs e)
{
// do something
milliseconds = milliseconds - 1000;
label.Text = getTimeText(milliseconds/1000);
elapsed += 1000;
//Debug.WriteLine(stopwatch.ElapsedMilliseconds + "\n");
if (milliseconds <= 1000)
dt.Stop();
}
String getTimeText(long secVal)
{
String timeString = "";
int seconds = (int)(secVal % 60);
int minutes = (int)((secVal/60) % 60);
int hours = (int)((secVal/(60 * 60)) % 60);
if (hours <= 9)
timeString = "0" + Convert.ToString(hours) + " : ";
else
timeString = Convert.ToString(hours) + " : ";
if (minutes <= 9)
timeString = timeString + "0" + Convert.ToString(minutes) + " : ";
else
timeString = timeString + Convert.ToString(minutes) + " : ";
if (seconds <= 9)
timeString = timeString + "0" + Convert.ToString(seconds) + " ";
else
timeString = timeString + Convert.ToString(seconds) + " ";
return timeString;
}
この問題を解決するにはどうすればよいですか?
それは私のためにうまくいきます! –
これはエミュレータまたは実デバイスでですか? –
各ティックが正確に1000msであると仮定するのではなく、開始時間を控えておき、各ティックごとに開始からどれくらいの時間が経過したかを見てください。それからあなたは100ミリ秒ごとにチェックして、かなり一貫して見えるはずです。 –