title image


Smiley Re: @okuna @effeff: Frage lesen - NACHDENKEN - antworten ...
Hi,



Das Zeitschema liegt leider nur in Sekunden vor. Deswegen muss man die Millisekunden

hinzu addieren:





Private Type SYSTEMTIME

wYear As Integer

wMonth As Integer

wDayOfWeek As Integer

wDay As Integer

wHour As Integer

wMinute As Integer

wSecond As Integer

wMilliseconds As Integer

End Type

'

Private Declare Sub GetSystemTime Lib "kernel32" ( _

lpSystemTime As SYSTEMTIME)



'

Private Sub Form_Load()

Dim st As SYSTEMTIME

Dim n As Currency



GetSystemTime st ' = System now()

n = DateDiff("s", "01.01.1970 00:00:00", Now) * 1000

n = n + st.wMilliseconds



MsgBox n

End Sub



Es liegt hier ein Unsicherheitsfaktor vor, und zwar genau zwischen GetSystemTime und

der DateDiff() Funktion. Letztere ist nicht threadsafe. Die Unsicherheit rührt daher, dass Windows zwischen oder während der Funktionen einen Taskswitch unternehmen könnte und somit ein winziger Bruchteil Rechenzeit verloren geht, der aber in diesem Zeitrahmen eine Rolle von 20 Millisekunden spielen kann. Ebenso wird der rekursive Aufruf der Funktionen Zeitsprünge im Bereich 20-30 Millisekunden mit sich bringen. Für eine Echtzeitaussage reicht es damit nicht.


Programmierst Du noch frei oder wirst Du schon von Microsoft verwaltet ( .NET)?



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: