Lo que sucede es que el evento Tick realiza lo que tienes en tu Sub y no es asincrono, eso quere decir que los ticks no continuan hasta que termina de hacer lo que tienes en tu evento:
Asi que esto es lo que te podria generar la inecrtidumbre, y si tu maquina es lenta o esta cargada de transacciones pues los procedimientos pueden tardar mas, asi que yo te sugeriria que utilizaras un Stopwatch que es un simple objeto cronometro, te dejo un ejemplo con dos botones y un label:
Bueno, pues espero que esto te sirva para tu proyecto, Suerte
Código (vbnet) [Seleccionar]
Milisegundos = Milisegundos + 1
LblTiempoTot.Text = Round(Milisegundos / 100, 3).ToString
'LblTiempoTot.Text = Milisegundos.ToString
Asi que esto es lo que te podria generar la inecrtidumbre, y si tu maquina es lenta o esta cargada de transacciones pues los procedimientos pueden tardar mas, asi que yo te sugeriria que utilizaras un Stopwatch que es un simple objeto cronometro, te dejo un ejemplo con dos botones y un label:
Código (vbnet) [Seleccionar]
Public Class Form1
Private stopw As New Stopwatch 'Creo mi nuevo stopwatch
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Interval = 1 'declaro intervalo en 1
Timer1.Start() 'inicio el timer
stopw.Start() 'Inicio el stopwatch, aqui es donde empieza a contar el tiempo
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'Aqui imprimo el valor de los minutos,segundos y milisegundos del stopwatch
'mientras este sigue avanzando sin interrupciones
Label1.Text = stopw.Elapsed.Minutes.ToString & " : " _
& stopw.Elapsed.Seconds.ToString & " : " _
& stopw.Elapsed.Milliseconds.ToString
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'Con este boton detengo el timer y el stopwatch
stopw.Stop()
Timer1.Stop()
End Sub
End Class
Bueno, pues espero que esto te sirva para tu proyecto, Suerte