Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi While Schleife pausieren -> ohne große CPU Last? (https://www.delphipraxis.net/120282-while-schleife-pausieren-ohne-grosse-cpu-last.html)

richard_boderich 8. Sep 2008 16:40


While Schleife pausieren -> ohne große CPU Last?
 
Hallo!

Ich möchte eine While Schleife pausieren, ohne das es wärend des Pausierens große CPU Last gibt.
Meine bisherigen Warteschleifen erzeugten dabei immer 99% CPU Last.

Auch Application.Prozessmessages nur bei jedem x-ten durchlauf aufzurufen hatt nichts gebracht.

Wenn ich jedoch in der Schleife ein Showmessage mache und danach ein Continue kann ich die Schleife pausieren mit nahezu 0% CPU Last.
Wenn man dann ok klickt läüft die Schleife weiter.

Ich hätte es aber gerne ohne dieses Showmesage, kann mir da jemand nen Tipp geben?

lbccaleb 8. Sep 2008 16:47

Re: While Schleife pausieren -> ohne große CPU Last?
 
Benutze sleep(1000) darin, oder eine zahl deiner wahl..

sirius 8. Sep 2008 16:56

Re: While Schleife pausieren -> ohne große CPU Last?
 
Versuche leiber dein Konzept zu ändern, als jetzt hier eine Frickellösung dir auszudenken.

Ansonsten kannst du auch msgwaitformultipleobjects nehmen (ich glaube, dass wird in delay verwendet).

richard_boderich 8. Sep 2008 16:57

Re: While Schleife pausieren -> ohne große CPU Last?
 
Sleep() hält das ganze Programm an und nicht nur die Schleife. Außerdem möchte ich nicht nur für eine bestimmte Zeit
pausieren, sondern solange bis der User via Button die Weiterabarbeitung einleitet.

sirius 8. Sep 2008 16:58

Re: While Schleife pausieren -> ohne große CPU Last?
 
Zitat:

Zitat von richard_boderich
Sleep() hält das ganze Programm an und nicht nur die Schleife. Außerdem möchte ich nicht nur für eine bestimmte Zeit
pausieren, sondern solange bis der User via Button die Weiterabarbeitung einleitet.

Dann gibt es waitmessage.

Edit: Ist in Application.HandleMessage enthalten.

Weazy 8. Sep 2008 17:58

Re: While Schleife pausieren -> ohne große CPU Last?
 
Lass die Schliefe doch in einem Thread ablaufen. Dann kannst du denn Thread pausieren...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz