Frage zum der API-Funktion timeSetEvent

06/06/2008 - 14:49 von Susann Markward | Report spam
Hallo,

ich möchte gerne die Timer-Funktion timeSetEvent [1] verwenden. Dazu mal
eine Frage.

Was bedeutet der Parameter uResolution (Auflösung)?

Deute ich das richtig, dass das der Wert in [ms] ist, nach dem die
Funktion aufgerufen wird (mal abgesehen von dem Wert 0)? Also das was
bei dem normalen VB-Timer der Wert "Interval" ist?

Also wenn als Bsp. uResolution = 10 angegeben ist, wird der Timer alle
10 ms angestoßen?


MfG
Susann


PS: Mich irritiert die Angabe Resolution (also das Wort "Auflösung)
irgendwie.

[1] http://msdn.microsoft.com/en-us/lib...13423.aspx
 

Lesen sie die antworten

#1 Schmidt
06/06/2008 - 16:38 | Warnen spam
"Susann Markward" schrieb im Newsbeitrag
news:48493245$0$27437$

ich möchte gerne die Timer-Funktion timeSetEvent [1]
verwenden. Dazu mal eine Frage.


Nicht so ohne weiteres zu empfehlen, zumindest nicht
im Zusammenspiel mit der CallBack-Variante (Thread-
LocalStorage-Probleme beim Rückruf des Timerthreads
in ein VB-Threaded Apartment).

Wenn die Funktion nicht unbedingt sein muss, dann besser
auf Alternativen ausweichen - was zur Frage führt,
"wozu Du das brauchst"? ;-)

Was bedeutet der Parameter uResolution (Auflösung)?


Hierbei geht es um die Genauigkeit des Intervalls (eine
Art vorgegebene mittlere Schwankungsbreite).
Ein Intervall von 40msec und einer 'uResolution' von
z.B. 3msec schwankt dann halt in einem etwas breiteren
Bereich von vielleicht so um die 37-43 msec um den
"Durchschnitt" von 40msec.
Wenn Du diesen Parameter auf 0 setzt, versucht Windows
intern mit mehr Aufwand, Deine Anwendung exakter
zurückzurufen. Wahrscheinlich mittels nochmals erhöhter
Prio des TimerWaitThreads, möglicherweise zus. noch
mittels eines "zeitigeren Aufwachens" aus einem effizienteren
TimerThread-Waitstate bei schon 34msec (+-5), um den Rest
bis zu Deinen 40msec dann mit "aktiverem Warten" zu verbringen,
um Dich dann pràziser bei "genau" zurückrufen
zu können.

Deute ich das richtig, dass das der Wert in [ms] ist,
nach dem die Funktion aufgerufen wird (mal abgesehen
von dem Wert 0)? Also das was
bei dem normalen VB-Timer der Wert "Interval" ist?


Nein, das Intervall wird im ersten Parameter uDelay
transportiert.

Olaf

Ähnliche fragen