シンプルな秒カウンターを表示しようとしています。ティック間隔が1秒のディスパッチャータイマーと、現在の秒数でティックハンドラーで更新するテキストボックスがあります。tick ハンドラーには少量の作業があります。つまり、一部の int での「tostring()」の呼び出しです。
私の問題は、秒が本来よりも遅いことです。間隔を 100 ミリ秒に設定して経過を確認しても、本来よりも遅くなります。(1 分間で約 6 秒遅くなります)。
正確な2番目のカウンターを表示するために、誰かが私を正しい方向に向けることができますか?
編集: ここにいくつかのコード (.xaml.cs 内)。これは、正常に動作する例から取られています。違いは、別のコントロールの Value プロパティではなく、TextBox の Text プロパティを設定していることです。
...
this.timer.Interval = TimeSpan.FromMilliseconds(100);
...
private void OnDispatcherTimer_Tick(object sender, EventArgs e) {
if (this.currentValue > TimeSpan.Zero) {
this.currentValue = this.currentValue.Value.Subtract(TimeSpan.FromMilliseconds(100));
} else {
// stop timer etc
}
this.seconds.Text = this.currentValue.Value.Seconds.ToString();
}