Einzelnen Beitrag anzeigen

Benutzerbild von Uncle Cracker
Uncle Cracker

Registriert seit: 30. Mär 2003
Ort: Freital
694 Beiträge
 
#3

Re: Programm hängt sich wegen SLEEP auf *HILFE*

  Alt 17. Apr 2005, 13:19
Mit der Funktion Sleep wird die Ausführung des aktuellen Threades unterbrochen. Wird Sleep im Hauptthread der Anwendung aufgerufen, so befindet sich die gesamte Anwendung anschließend im Ruhezustand und es werden in diesem Zeitraum weder Nachrichten noch Befehle abgearbeitet.
Das bedeutet, dass die gesamte Anwendung still steht und nicht mehr reagiert.

Um jetzt nicht das gesamte Programm zum stillstand zu bringen, sondern das Programm wie in einer Schleife laufen zulassen, nimmt man ProcessMessage. In Pascal gab es die Funktion Delay...

Delphi-Quellcode:
procedure Delay(const Milliseconds: DWord);
var Start: Integer;
begin
  Start:=GetTickCount;
  while GetTickCount-Start <= Milliseconds do
    application.ProcessMessages;
end;

[Edit]Hätte mir doch ni soviel Zeit lassen sollen, dann wäre ich erster... [/Edit]
I wish it was legal to marry software because I'm madly in love with Delphi...
  Mit Zitat antworten Zitat