Referenz - SLEEP
Syntax: SLEEP [Zeit] [, Flag]
Typ: Anweisung
Kategorie: Programmablauf
SLEEP wartet eine bestimmte Zeit oder bis eine Taste gedrückt wird.
- 'Zeit' ist die Zahl der Millisekunden, die vergehen sollen, bis das Programm fortgesetzt wird.
- Wird 'Zeit ausgelassen, wartet FreeBASIC mit der Programmfortsetzung bis zum nächsten Tastendruck.
- Auch wenn eine Wartezeit angegeben wurde, setzt FreeBASIC bei einem Tastendruck die Programmausführung fort, selbst wenn die Wartezeit noch nicht verstrichen ist.
- Wenn für 'Flag' 1 angegeben wird, reagiert SLEEP nicht auf Tastendrücke; es wird wirklich gewartet, bis die Zeit verstrichen ist. Für Zeiteinheiten unter 100 Millisekunden wird dieses Flag allerdings ignoriert.
- Wird SLEEP ohne 'Zeit', aber mit 'Flag' aufgerufen, wird ein Fehler erzeugt.
Achtung: Der Tastaturpuffer wird durch SLEEP nicht geleert! Er muss nach einem Aufruf von SLEEP erst neu geleert werden! Alternativ kann, wenn einfach nur auf eine Taste gewartet werden soll, GETKEY verwendet werden.
Hinweis: Angegebene Wartezeiten und tatsächliche Wartezeiten können insbesondere bei sehr kurzen Zeitangaben stark voneinander abweichen! Die Genauigkeit beträgt:
- 15 ms unter Windows NT / 2000 / XP /Win 7, 8.1, 10 (32 / 64bit)
- 50 ms unter Windows 9x / Me
- 10 ms unter Linux
- 55 ms unter DOS
SLEEP sollte in Schleifen regelmäßig (am besten in jedem Durchgang) bis zu 25 ms warten (hierfür bietet sich ein simples "SLEEP 1" an), um anderen Prozessen die Gelegenheit zu geben, Berechnungen durchzuführen. Dies wirkt sich positiv auf die Rechnerperformance und auch auf die Performance des eigenen Programms aus.
Beispiel:
PRINT "Drücken Sie bitte eine Taste"
SLEEP
PRINT "Sie haben "; INKEY ; " gedrückt."
PRINT "Warte 5 Sekunden"
SLEEP 5000
Unterschiede zu QB:
- Die zu wartende Zeit wird in Millisekunden angegeben (außer in -lang qb; siehe unten). In QB wird die angegebene Zeit in Sekunden gewartet.
- Das optionale Flag zum Ignorieren der Tastendrücke ist neu in FreeBASIC.
Unterschiede zu früheren Versionen von FreeBASIC:
- Seit FreeBASIC v0.18.3 wartet SLEEP in der Dialektform -lang qb die angegebene Zeit in Sekunden (siehe unten).
- Das optionale Flag zum Ignorieren der Tastendrücke existiert seit FreeBASIC v0.15
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb wartet SLEEP wie unter QB die angegebene Zeit in Sekunden. Wird 'Flag' angegeben oder __SLEEP verwendet, dann wird die angegebene Zeit in Millisekunden gewartet.
Siehe auch:
GETKEY, TIMER, INKEY, Datum und Zeit
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|