My.Computer.Clock.TickCount プロパティ

更新 : 2007 年 11 月

コンピュータのシステム タイマからミリ秒のカウントを取得します。

' Usage
Dim value As Integer = My.Computer.Clock.TickCount
' Declaration
Public ReadOnly Property TickCount As Integer

戻り値

コンピュータのシステム タイマから取得したミリ秒のカウントを格納する Integer です。

解説

TickCount プロパティを使用すると、コンピュータがアクティブになったときに実行されるシステム タイマにアクセスできます。このタイマの解像力は 500 ミリ秒以上です。

このプロパティを使うことによって、アプリケーションが稼動している時間の長さに応じてその動作を変更したり、イベントにラベルを付けたりすることが可能です。また、このどちらもコンピュータのクロックの影響を受けません。

注意 :

TickCount プロパティの値が整数の最大値 (MaxValue) に達すると、負の数である整数の最小値 (MinValue) にジャンプし、そこから続けてインクリメントします。

コンピュータが継続して動作している場合、TickCount が 0 から整数の最大値にインクリメントされるまでには、およそ 24.9 日間かかります。

TickCount プロパティがインクリメントするのは、オペレーティング システムが稼動しているときだけです。コンピュータがスタンバイや休止状態など、特定の省電力モードに入るとインクリメントは停止します。TickCount プロパティは、コンピュータのクロック設定とは関係ありません。

このコンピュータにおける現在のローカルな日付と時刻を取得するには、My.Computer.Clock.LocalTime プロパティまたは My.Computer.Clock.GmtTime プロパティを取得します。

My.Computer.Clock.TickCount プロパティと Environment.TickCount プロパティの動作は同じです。

使用例

次の例は My.Computer.Clock.TickCount プロパティを使用して、ループ内のタスクを指定された秒数だけ実行します。実行中にコンピュータのシステム時刻が変更されても動作に影響はありません。

Public Sub LoopTask(ByVal secondsToRun As Integer)
    Dim startTicks As Integer = My.Computer.Clock.TickCount
    Do While IsTimeUp(startTicks, secondsToRun)
        ' Code to run for at least secondsToRun seconds goes here.
    Loop
End Sub

Private Function IsTimeUp( _
    ByVal startTicks As Integer, _
    ByVal seconds As Integer _
) As Boolean
    ' This function throws an overflow exception if the
    ' tick count difference is greater than 2,147,483,647,  
    ' about 24 days for My.Computer.Clock.TickCount.

    ' Use UInteger to simplify the code for roll over.
    Dim uStart As UInteger = _
        CUInt(CLng(startTicks) - Integer.MinValue)
    Dim uCurrent As UInteger = _
        CUInt(CLng(My.Computer.Clock.TickCount) - Integer.MinValue)

    ' Calculate the tick count difference.
    Dim tickCountDifference As UInteger
    If uStart <= uCurrent Then
        tickCountDifference = uCurrent - uStart
    Else
        ' Tick count rolled over.
        tickCountDifference = UInteger.MaxValue - (uStart - uCurrent)
    End If

    ' Convert seconds to milliseconds and compare.
    Return CInt(tickCountDifference) < (seconds * 1000)
End Function

必要条件

名前空間 : Microsoft.VisualBasic.Devices

クラス : Clock

アセンブリ : Microsoft Visual Basic ランタイム (Microsoft.VisualBasic.dll 内)

使用可能なプロジェクトの種類

プロジェクトの種類

使用可/不可

Windows アプリケーション

クラス ライブラリ

コンソール アプリケーション

Windows コントロール ライブラリ

Web コントロール ライブラリ

Windows サービス

Web サイト

アクセス許可

アクセス許可は不要です。

参照

参照

My.Computer.Clock オブジェクト

Environment.TickCount

Clock.TickCount