![]() |
10 sec. warten
Hallo allerseits
Ich habe ein kleines Problem. Anschliessend mein Pseudo-Code:
Delphi-Quellcode:
:gruebel: Also, das Ganze scheint ja nicht so schwierig. Mir geht es vorallem darum, wie ich das nun am Besten realisieren soll: mit sleep, delay oder mit einem Timer (TTimer)?? Ich würde sleep benutzen... Geht das überhaupt mit einem Timer?? Wenn ja wie? (ist es nicht so dass das Programm "während" dem Timer weiterlaufen würde?)
...
Sende Telegramm an anderen Prozess P2 (P2 ändert eine Tabelle) warte 10 Sekunden prüfen ob Prozess P2 die Änderung gemacht hat wenn ja, Program weiter ausführen; wenn nein, nochmals 10 sec. warten (max. 3mal) ... es dankt und grüsst TomDooley |
Re: 10 sec. warten
sleep geht glaube ich nicht, weil es die ganze anwendung einfriert. Oder sehe ich das falsch? Ich würde Delay benutzen.
MfG Christian |
Re: 10 sec. warten
Hi...
Timer ist gut... weil der dur dein Programm einfriert und nicht den ganzen Computer... Du hast natürlich recht. Das Programm würde weiterlaufen, du musst es also irgendwie beschäftigen. Zum Beispiel mit ner Endlosschleife... Versuch mal eine Bool-Variable dafür zu benutzen... Etwa so:
Code:
hoffe das hilft dir etwas... geht zwar auch eleganter aber auch komplizierter :wink:
setze BlWarten(Bool) auf true
Starte den Timer, der nach 10 sec BlWarten auf false setzt. while BlWarten do // Do something... or not if nothinghappend then ... |
Re: 10 sec. warten
HI
Es ist eigentlich egal ob du es mit einem Timer oder mit delay machst aber wie "Chris1986" schon sagte wird bei sleep das Programm eingefroren. |
Re: 10 sec. warten
in der Code-Library (
![]() :dp: [Edit] Ups, ist ja ne procedure :oops: [/Edit] MfG Christian |
Re: 10 sec. warten
Hallo
Ist mit der Timer-Lösung von Tonic1024 nicht die CPU voll ausgelastet?? (das sollte wenn möglich vermieden werden....) |
Re: 10 sec. warten
hier eine gute delay-proc..
Delphi-Quellcode:
herzliche grüsse, zopf
procedure delay(ms:Integer);
var Start:real; begin Start := GetTickCount; repeat Application.ProcessMessages; until GetTickCount-Start > ms; end;{proc...} [edit=Luckie]Delphi-Tags gestezt. Bitte beim nächsten mal selber machen. Danke. Mfg, Luckie[/edit] |
Re: 10 sec. warten
@zopf: Rat mal wohin der Lonk von Chris1986 führt....
Btw. ist deine schlechter. GetTickCount gibt einen Integer zurück, du deklarierst aber Start als Real Typ (wo bei man selbst diesen schon vermeiden sollte und statt dessen Extended oder Double nehmen sollte), was dazu führt, dass intern immer noch ein Cast durchgeführt werden muss. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz