Zum Hauptinhalt springen

WinSleep

WinSleep(int1[, int2])

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von der DLL-Schnittstelle mit grafischer Erweiterung Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service mit grafischer Erweiterung

Prozedurverarbeitung anhalten

Details

Diese Funktion hält die Prozedurausführung für die in (int1) angegebene Zeitspanne in Millisekunden an.

Im Gegensatz zu dem Befehl SysSleep () wird die Nachrichtenschleife von Windows abgefragt und neu eingetroffene Ereignisse bearbeitet. Ist die Zeitspanne abgelaufen oder keine Windows-Nachricht vorhanden, kehrt der Befehl zurück und setzt die Prozedurausführung fort.

Über das optionale Argument (int2) kann definiert werden, welche Nachrichten verarbeitet werden. Nachrichten, die nicht verarbeitet werden, verbleiben in der Nachrichtenschleife, um sie zu einem späteren Zeitpunkt verarbeiten zu können. Folgende Konstanten können angegeben werden:

Beispiel:

Im Ereignis EvtChanged eines Eingabe-Objektes wird während einer längeren Verarbeitung WinSleep aufgerufen, damit eingehende Windows-Nachrichten verarbeitet werden können. Hierzu zählen auch Tastatureingabe-Nachrichten. Macht der Anwender während der Durchführung des Ereignisses EvtChanged Tastatureingaben, würde dies zur Ausführung des Ereignisses EvtChanged führen. Da dieses jedoch bereits ausgeführt wird, kann die Eingabe nicht verarbeitet werden. Die Eingabe wird ignoriert und nicht an das Eingabeobjekt weitergeleitet. Durch den Aufruf von WinSleep( 1 , _WinMsgNoKeyboardInput ) im Ereignis EvtChanged werden Tastaturnachrichten ignoriert und verbleiben in der Warteschlange. Dadurch gehen keine Tastatureingaben verloren.