![]() |
Apptype Console
Hallo.
Ich habe ein Konsolenprog. entwickelt, das ich sowohl unter Delphi als auch Kylix erzeugen lässt. In dem Programm wird nur ein Indy TCP Server gestartet der auf Kommandos wartet. Der einfachheit halber habe ich alles in ein Thread - Object gepackt. Jetzt mein Problem. Ich starte den Server in der Methode Execute. Dann passiert ja eigendlich nicht mehr, sprich es sollte einfach nur noch laufen. Wenn ich aber jetzt einfach eine Repeat Until Terminated einsetze verheitze ich ja sämtliche CPU Zeit. Wie gebe ich die bei einem Konsolenprgramm frei? Application.ProcessMessages steht mir ja nicht zur Verfügung. Viele Grüsse, Björn |
Re: Apptype Console
Hallo Ramses,
sieh mal in der OH unter TThread.WaitFor nach. Vielleicht lässt sich Dein Problem so schon lösen? |
Re: Apptype Console
Nein, leider nicht so einfach.
'Waitfor' wartet ja nur, bis die Methode Execute beendet ist. Nur die darf nicht beendet werden, solange nicht Terminated = True ist. Hier mal der Problem Code:
Delphi-Quellcode:
Ist ja nicht wirklich schön. Saugt CPU - Time ohne Ende. Unter Windows wüsste ich rat, aber als Konsolenanwendung ?!
procedure Tossrv.Execute;
begin server.active := true; repeat if not server.Active then terminate; until Terminated; end; |
Re: Apptype Console
Wenn Du wirklich pollen willst, solltest Du den Thread kurze Zeit anhalten. Wie sähe Deine Lösung unter Windows aus?
|
Re: Apptype Console
Unter Windows würde ich Application.ProcessMessages einfügen.
Nur steht mir unter der Konsolenanwendung dieses nicht zur Verfühgung. |
Re: Apptype Console
Gibt GetTickCount unter Linux?
Wenn ja kannst du die Delay Funktion von Luckie hier aus dem Forum nehmen ... |
Re: Apptype Console
Mach mal Sleep(1000) in die Schleife rein, dann sollte das ohne Probleme laufen!
|
Re: Apptype Console
Zitat:
|
Re: Apptype Console
Das mit dem Sleep geht auch unter Linux. Hatte ich nicht mehr dran gedacht.
Es reicht schon ein Sleep(500). Danke nochmal an alle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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