VB-Tec.de Visual Basic - Technik, FAQ, Tricks, BeispieleHome / Allgemein / Zeit / Timer Genauerer Timer |
| Historie | |
| 05.07.2001 | Beispiel hinzugefügt |
| 31.07.2000 | Erste Version |
Zur genauen Zeitmessung bietet das Betriebssystem einen alternativen Timer mit einer höheren Auflösung, als die von VB zur Verfügung gestellten Funktionen Timer oder gar Now.
Das folgende Code-Fragment zeigt, wie man die Dauer mehrerer Aktionen misst:
Dim t0 As Double Dim t1 As Double Dim t2 As Double t0 = QPTimer DoAktion1() t1 = QPTimer DoAktion2() t2 = QPTimer Print "Dauer Aktion 1:", t1 - t0 Print "Dauer Aktion 2:", t2 - t1 Print "Dauer zusammen:", t2 - t0
Im Deklarationsteil eines Moduls werden folgende API-Routinen bekannt gemacht:
Private Declare Sub QueryPerformanceCounter _
Lib "kernel32" (lpPerformanceCount As Currency)
Private Declare Sub QueryPerformanceFrequency _
Lib "kernel32" (lpFrequency As Currency)
Hier der eigentliche Code:
Public Function QPTimer() As Double
Static Takt As Currency
Dim Dauer As Currency
If Takt = 0 Then
'einmal die Taktfrequenz bestimmen:
QueryPerformanceFrequency Takt
End If
'aktuelle Zeit holen:
QueryPerformanceCounter Dauer
'Zeit in Sekunden umrechnen:
QPTimer = Dauer / Takt
End Function
Diese Funktion gibt übrigens die Zeit in Sekunden an, die seit dem Starten von Windows vergangen sind.
© Jost Schwider, 30.04.2000-05.07.2001 - http://vb-tec.de/timer.htm