Deutsch
Forum

SetTimer vs. Sleep

 

Jörg
Sellmeyer
Kann mir mal jemand erklären, warum bei SetTimer in verbindung mit WaitInput so riesige Unterschiede im Vergleich zu Sleep auftreten.
Laut Profanhilfe sind beide Befehle mit Parametern zu füttern, die Millisekunden repräsentieren.
Bei Sleep kommt das auch ungefähr (ist halt Windows) hin. SetTimer (sowohl Profan als auch per Api) in verbindung mit WaitInput sind ca. 12-16 mal langsamer!
Einen Faktor von 4-6 könnte ich ja verstehen, da ja im WaitInput was passiert, aber hier würde ich mir wünschen, daß das etwas feiner getaktet werden kann.
KompilierenMarkierenSeparieren
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.09.2008  
 




Frank
Abbing
NT-Versionen haben einen Abstand von 16 ms. Genauer geht es auch nicht mit Sleep.
 
15.09.2008  
 




Jörg
Sellmeyer
Naja, man sieht ja doch einen deutlichen Unterschied zwischen Sleep und SetTimer.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.09.2008  
 



@Jörg: Falls es Dir um Echtzeit gehen sollte, Timer sind für ein Frame ungeeignet - aber gut für wiederkehrende Events. Sleep ist imho genauer als Timer.
 
15.09.2008  
 




Frank
Abbing
Das hier ist ms-genau:
KompilierenMarkierenSeparieren
Millisekunden-genaue Zeitmessung
ohne Hardwaretimer unter NT-Windows.
(c) Frank Abbing
Def timeGetTime(0)!"WINMM","timeGetTime"
Def timeBeginPeriod(1)!"WINMM","timeBeginPeriod"
Def timeEndPeriod(1)!"WINMM","timeEndPeriod"
timeBeginPeriod(1)
Sleep 32

WhileLoop 2000

    AddString "Wert in ms: "+Str$(timeGetTime())

EndWhile

ListBox$("Counter",2)
timeEndPeriod(1)
End
 
15.09.2008  
 




Jörg
Sellmeyer
Sehr schön! So kann man in Verbindung mit Sleep eine Zeitabfrage erstellen, die zumindest auf 2 ms genau ist und trotzdem nicht das System belastet.
Ich kann mich dumpf erinnern, daß Du das auch schonmal auf eine Anfrage von Georg gepostet hast. Danke.
KompilierenMarkierenSeparieren
Millisekunden-genaue Zeitmessung
ohne Hardwaretimer unter NT-Windows.
(c) Frank Abbing
Def timeGetTime(0)!"WINMM","timeGetTime"
Def timeBeginPeriod(1)!"WINMM","timeBeginPeriod"
Def timeEndPeriod(1)!"WINMM","timeEndPeriod"
timeBeginPeriod(1)
Sleep 32
Cls
Var n& = timeGetTime() + 100

While timeGetTime() < n&

    sleep 1
    AddString "Wert in ms: "+Str$(timeGetTime())
    Case Between(timeGetTime(),n&-42,n&-40):Print "a"

EndWhile

ListBox$("Counter",2)
timeEndPeriod(1)
WaitInput
End
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.09.2008  
 




GDL
Hi,

ich kam , mit Frequenzmesser gemessen, auch damit nicht unter 10 ms.
Das Problem bei mir ist einfach das ausführende Programm, das leider nicht Dauerprozess hat.
Für zeitkritische Messungen die ich habe, der µs Bereich ist da ganz normal, ist Windows nicht zu gebrauchen.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
15.09.2008  
 



Jupp wegen der Zeitscheiben für die Threads, möglicherweise erhöht man die Genauigkeit mit speziellen Prozess-Prioritäten-Einstellungen.
 
15.09.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.877 Betrachtungen

Unbenanntvor 0 min.
Walter30.12.2022
Georg Teles01.05.2020
RudiB.28.04.2020
Klaus Ernst22.09.2014
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie