とある処理をWindows Mobileで調べようと思って、
処理後の時間-処理前の時間でかかった時間を求めようと、
下記のコードを書いてみました。
Public Class QueryPerformance
<DllImport("kernel32.dll")> _
Private Shared Function QueryPerformanceCounter(ByRef value As Long) As Short
End Function
<DllImport("kernel32.dll")> _
Private Shared Function QueryPerformanceFrequency(ByRef value As Long) As Short
End Function
Public Shared Function GetTime() As Double
Dim counter As Long = 0
Dim frequency As Long = 0
' 高分解能パフォーマンスカウンタが存在する場合、
' そのカウンタの現在の値を取得します。
QueryPerformanceCounter(counter)
' 高分解能パフォーマンスカウンタが存在する場合、
' そのカウンタの周波数(更新頻度)を取得します。
' システムが動作している間は、周波数を変更できません。
QueryPerformanceFrequency(frequency)
Return counter / frequency
End Function
End Class
実行するとkernel32.dllが無いと例外が発生してしまいました。
結局、System.Environment.TickCountを使うことにしました。
……ん?前も同じような事で悩んだ記憶が……