Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi IndyHTTP-Aufruf in DLL = hohe Auslastung ? (https://www.delphipraxis.net/46969-indyhttp-aufruf-dll-%3D-hohe-auslastung.html)

Unplugged 3. Jun 2005 22:50


IndyHTTP-Aufruf in DLL = hohe Auslastung ?
 
Hallo,

da es wahrscheinlich schon zuviel Code ist, um es hier zu posten, versuche ich das Problem mal möglichst genau zu beschreiben.

Ich hab eine dll, in der es eine Funktion GetFiles gibt. Sie erstellt lokal ein TIdHTTP und läd die Dateien, die in einem Record + verkettete Liste stehen. Übergabe erfolgt dabei als Pointer. Desweiteren übergebe ich 2 ProgressBar und 1 Label für Ausgaben.

In der Applikation erstelle ich einen TThread und lade dort die Dll-Funktion ( zur Laufzeit ) und führe sie natürlich auch aus.


Problem:
Erstmal sei zu sagen, dass er alles so macht wie er soll. Aber er verursacht während des Downloads 100% Auslastung der CPU.
Da ich noch am Anfang der DLL-Pogrammierung bin, vermute ich mal, dass es mein Fehler ist ?

Ich hab das Projekt mal angehangen. Es müsste noch die Dll und dann halt die Exe kompiliert werden. Zum testen muss die url drin bleiben.

Edit: ok war mein Fehler. Ich hatte das ganze in der FormActivate drin und bei TThread ein WaitFor eingefügt. Dadurch wurde bis dahin das Form blockiert. Warum das auch zu der hohen Auslastung führt, ist aber komisch. Liegt wohl an dem WaitFor.

bailey 25. Jun 2006 11:29

Re: IndyHTTP-Aufruf in DLL = hohe Auslastung ?
 
wie es scheint ist es auf die TidHTTP bezogen...

ich hab das gleich problem.
Hast du dazu eine lösung..!?

Flare 25. Jun 2006 11:31

Re: IndyHTTP-Aufruf in DLL = hohe Auslastung ?
 
Also wie man die Systemauslastung runter bekommt weiß ich nicht, aber man könnte die Trhead-Priorität runterschrauben, dann hängt der PC trotzdem nicht.
(Und warum ist da kein Anhang? :gruebel: )

Flare

bailey 25. Jun 2006 12:04

Re: IndyHTTP-Aufruf in DLL = hohe Auslastung ?
 
Zitat:

Zitat von Flare
aber man könnte die Trhead-Priorität runterschrauben, dann hängt der PC trotzdem nicht.

Die ist schon niedrig - IDLE_PRIORITY_CLASS

Das ist mein Code:

Delphi-Quellcode:
n:=0;
     try
      for i := 0 to AltArray.Count -1  do
      begin
          if (TDateien(AltArray.items[i]^).Available = false) then
              begin
              LParams.Add('id'+inttostr(n)+'='+inttostr(ID));
              LParams.Add('md5'+inttostr(n)+'='+TDateien(AltArray.items[i]^).MD5);
              form1.StatusLabel.Caption := 'delete old files from database ';
              inc(n);
              end; //if
      end; //for
       // ab hier kackt er ab..
      response := IdHTTP1.Post('http://'+form1.DatabaseServerEdit.Text+'/delphi.php', LParams);


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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