.net随笔-vb.net 系统计时器

TickCount属性提供对计算机的系统计时器的访问,从计算机的系统计时器获取毫秒计数。
该计时器在计算机处于活动状态时运行。定时器的分辨率不小于500毫秒。
您可以使用此属性使您的应用程序的行为依赖于它运行的时间长度,或者您可以使用它来标记事件,这两者都独立于计算机的时钟。
谨慎
当TickCount属性的值达到最大整数值(MaxValue)时,它会跳转到最小整数值(MinValue),一个负数,并继续递增。
如果计算机连续运行,TickCount在大约24.9天内从0增加到最大值。
TickCount属性仅在操作系统运行时递增;当电脑进入待机或休眠等特定的节能模式时,它会暂停。TickCount属性与计算机的时钟设置无关。

Public Class Form1
    Dim startTicks As Integer
    Dim endTicks As Integer

    Private Function getTimes(startTick, endTick)
        Dim uStart As UInteger = CUInt(CLng(startTick) - Integer.MinValue)
        Dim uEnd As UInteger = CUInt(CLng(endTick) - Integer.MinValue)
        Return uEnd - uStart
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        startTicks = My.Computer.Clock.TickCount
        Button2.Enabled = True
        Button1.Enabled = False
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        endTicks = My.Computer.Clock.TickCount
        Dim msTotalTime = getTimes(startTicks, endTicks)
        Dim msTime = CInt(msTotalTime Mod 1000) '毫秒
        Dim sTime = CInt((msTotalTime / 1000) Mod 60) '秒
        Dim mTime = CInt(sTime / (1000 * 60)) '分
        Label1.Text = CStr(mTime) & ":" & CStr(sTime) & ":" & CStr(msTime)
        Button2.Enabled = False
        Button1.Enabled = True
    End Sub
End Class

.net随笔-vb.net 系统计时器