Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Stopwatch with precision
- Public Class StopWatch
- Public Shared ReadOnly Frequency As Decimal = Diagnostics.Stopwatch.Frequency
- Private _Running As Boolean
- Private _Start, _End As ULong
- Public Shared Function StartNew() As StopWatch
- Return New StopWatch(True)
- End Function
- Public Sub New() : End Sub
- Private Sub New(ByVal Start As Boolean)
- _Start = Diagnostics.Stopwatch.GetTimestamp
- _Running = True
- End Sub
- Public ReadOnly Property IsRunning() As Boolean
- Get
- Return _Running
- End Get
- End Property
- Public ReadOnly Property Elapsed() As TimeSpan
- Get
- If _Running Then Return New TimeSpan(Diagnostics.Stopwatch.GetTimestamp - _Start)
- Return New TimeSpan(_End - _Start)
- End Get
- End Property
- Public ReadOnly Property ElapsedDays() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / (Frequency * 86400D)
- Return (_End - _Start) / (Frequency * 86400D)
- End Get
- End Property
- Public ReadOnly Property ElapsedHours() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / (Frequency * 3600D)
- Return (_End - _Start) / (Frequency * 3600D)
- End Get
- End Property
- Public ReadOnly Property ElapsedMinutes() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / (Frequency * 60D)
- Return (_End - _Start) / (Frequency * 60D)
- End Get
- End Property
- Public ReadOnly Property ElapsedSeconds() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / Frequency
- Return (_End - _Start) / Frequency
- End Get
- End Property
- Public ReadOnly Property ElapsedMilliseconds() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / (Frequency / 1000D)
- Return (_End - _Start) / (Frequency / 1000D)
- End Get
- End Property
- Public ReadOnly Property ElapsedMicroseconds() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / (Frequency / 1000000D)
- Return (_End - _Start) / (Frequency / 1000000D)
- End Get
- End Property
- Public ReadOnly Property ElapsedNanoseconds() As Decimal
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start) / (Frequency / 1000000000D)
- Return (_End - _Start) / (Frequency / 1000000000D)
- End Get
- End Property
- Public ReadOnly Property ElapsedTicks() As Long
- Get
- If _Running Then Return (Diagnostics.Stopwatch.GetTimestamp - _Start)
- Return (_End - _Start)
- End Get
- End Property
- Public Sub Start()
- If Not _Running Then
- _Start = Diagnostics.Stopwatch.GetTimestamp - (_End - _Start)
- _Running = True
- End If
- End Sub
- Public Sub [Stop]()
- If _Running Then
- _End = Diagnostics.Stopwatch.GetTimestamp
- _Running = False
- End If
- End Sub
- Public Sub Reset()
- _Start = Diagnostics.Stopwatch.GetTimestamp
- End Sub
- Public Sub Restart()
- _Start = Diagnostics.Stopwatch.GetTimestamp
- _Running = True
- End Sub
- End Class
Add Comment
Please, Sign In to add comment