How to get accurate ticks from a timer (high‑resolution timer) in VB.NET

1 Answer

0 votes
Imports System
Imports System.Diagnostics

Module Program
    Sub Main()
        Dim sw As Stopwatch = Stopwatch.StartNew()

        ' Do some work
        For i As Integer = 0 To 1000000 - 1
        Next

        sw.Stop()

        Console.WriteLine("Elapsed ticks: " & sw.ElapsedTicks)
        Console.WriteLine("Elapsed ms: " & sw.Elapsed.TotalMilliseconds)
        Console.WriteLine("Timer frequency: " & Stopwatch.Frequency)
        Console.WriteLine("Is high resolution: " & Stopwatch.IsHighResolution)

        ' Convert ticks to real time
        Dim seconds As Double = CDbl(sw.ElapsedTicks) / Stopwatch.Frequency
        Dim microseconds As Double = seconds * 1000000
        Dim nanoseconds As Double = seconds * 1000000000

        Console.WriteLine("Seconds: " & seconds)
        Console.WriteLine("Microseconds: " & microseconds)
        Console.WriteLine("Nanoseconds: " & nanoseconds)
    End Sub
End Module



' run:
'
' Elapsed ticks: 1604019
' Elapsed ms: 1.604
' Timer frequency: 1000000000
' Is high resolution: True
' Seconds: 0.001604019
' Microseconds: 1604.019
' Nanoseconds: 1604019
' 

 



answered 6 days ago by avibootz
...