在这里,我将时间变量初始化为 0,并用于StopWatch
计算毫秒数并DispatcherTimer
更新 UI
Imports System.Threading
Imports Windows.UI.Xaml
Dim dt As DispatcherTimer = New DispatcherTimer
Dim dd As Integer = 0
Dim mm As Integer = 0
Dim hh As Integer = 0
Dim ss As Integer = 0
Dim ms As Integer = 0
Dim stopwatch As System.Diagnostics.Stopwatch = New System.Diagnostics.Stopwatch
Private Sub ontimertick()
ms = stopwatch.ElapsedMilliseconds
ss = ms / 1000
ms = ms Mod 1000
mm = ss / 60
ss = ss Mod 60
hh = mm / 60
mm = mm Mod 60
dd = hh / 24
hh = hh Mod 24
MicroSeconds.Text = ms.ToString("00")
Seconds.Text = ss.ToString("00")
Minutes.Text = mm.ToString("00")
Hours.Text = hh.ToString("00")
End Sub
Private Sub StartButton_Click(sender As Object, e As RoutedEventArgs) Handles StartButton.Click
dt.Interval = New TimeSpan(0, 0, 0, 0, 100)
AddHandler dt.Tick, AddressOf ontimertick
stopwatch.Start()
dt.Start()
End Sub
问题是所有变量的第一个实例的增量时间是我预期的实际时间的 1/2。
例如 seconds.text 在第 500 毫秒更新为 1,下一个在 1000 毫秒后更新
同样,Minutes.text 在第 30 秒后更新为 1,然后在 60 秒后正常递增
与小时和天相同,但仅在第一个实例之后,它在正常间隔后递增
那么任何人都可以帮我找出逻辑错误吗?
我想知道如何反转过程并倒计时?
你们能帮我解决我可以实现的想法/逻辑吗?