Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Interaktiver Thread; zum senden einer Http Anfrage (https://www.delphipraxis.net/7187-interaktiver-thread%3B-zum-senden-einer-http-anfrage.html)

DataCool 4. Aug 2003 20:53


Interaktiver Thread; zum senden einer Http Anfrage
 
Hi Leute,

mit Threads kenn ich mich einigermaßen aus. Habe hier gerade aber ne Situation, wo ich nicht ganz sicher bin wie's richtig ist.

Problem :
Ich möchte über die IdHttp-Komponente eine Anfrage auf ein PHP-SChript auf meinem Server schicken, in diesem Fall geht es z.B. um eine Anmeldung.
Ich brauche aber auch die Antwort der Http-Anfrage; nach dem Motto :
1 = Anmeldung ok
0 = ???
-1 user oder pwd unbekannt

Damit nicht das ganze Programm solange steht wir die Anfrage ausgeführt wird dachte ich mir, das verlagere das ganze in einen Thread.

D.H. Ich verlagere meine Anfrage in einen Thread warte aber im Hauptprogramm nach der erzeugung solange bis der Thread fertig ist und mir das Ergebnis geliefert hat.

Frage 1:
Ist der GRundgedanke falsch ?

Frage 2:
Code:
Var
   intTwThd : TInteractiveTWThread;
   iRes    : Longint;
begin
   intTwThd := TInteractiveTWThread.Create({meine login-Parameter});
   try
      // Thread starten
      intTwThd.Resume;
      // auf Ende des Threads warten
      intTwThd.WaitFor;
      iRes := intTwThd.Result;
      result := (iRes = 1) or (iRes = 2);
   finally
      intTwThd.Terminate;
   end;
end;
ist das richtig so ? Weil eigentlich wartet "waitfor" ja solange bis der Thread fertig ist. Der Thread ist auf FreeOnTerminate gestellt und ich greife danach auf die Property Result des Threads zu, obwohl er da ja schon freigegeben sein sollte.

Mit diesem gebastelten Konstrukt geht es, aber ab und zu bekomm ich schutzverletzungen in meiner App es laufen so ca. 6 Thread noch paralellel im Hintergrund. Welcher Thread jetzt wann welchen Fehler bringt kann ich nicht genau sagen, denn das Debugging von dem ganzen ist nicht so einfach, vor allen Dingen, weil mir beim Debuggen der Threads Deplhi mir 50% wahrscheinlichkeit abraucht.

Aber ich glaube Ihr wißt worum es mir geht !

Data


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