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 サイト |
可 |
アクセス許可
アクセス許可は不要です。