Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   idhttp.Post parallelisieren (https://www.delphipraxis.net/162551-idhttp-post-parallelisieren.html)

Alfonso 29. Aug 2011 08:22

idhttp.Post parallelisieren
 
Hallo,

ich rufe über idhttp1.Post einen PHP Skript auf, der eine sehr lange Laufzeit hat. Während die Abfrage läuft, ist das Programm blockiert, da es kein Application.Processmessage ausführt. Ich kann weder das Fenster bewegen noch irgendwas machen.

Gibt es einen Trick, das Post im Hintergrund laufen zu lassen?
Ich habe es bereits mit einem Timer versucht. Der Post wird in einem Timer gestartet. Dieses bringt aber nicht das gewünschte Eregebnis.

Hat jemand einen Rat?

Gruß
Alfonso

DeddyH 29. Aug 2011 08:38

AW: idhttp.Post parallelisieren
 
Spontan fallen mir 2 Möglichkeiten ein: ein IdAntiFreeze dazupacken oder besser das Post in einen eigenen Thread auslagern. Dazu müssten sich in der DP einige Beispiele finden lassen.

Alfonso 29. Aug 2011 09:45

AW: idhttp.Post parallelisieren
 
Vielen Dank. IdAntiFreeze tut genau was ich wollte. Ich kannte es nicht.

Gruß
Alfonso

DeddyH 29. Aug 2011 09:47

AW: idhttp.Post parallelisieren
 
Der Thread wäre allerdings die elegantere Möglichkeit gewesen. Aber ich will Dir da nicht reinreden ;)

Alfonso 29. Aug 2011 09:55

AW: idhttp.Post parallelisieren
 
Du darfs gerne reinreden :P. Ich habe bisher noch nie mit Threads gearbeitet. Wenn ich was parallelisieren wollte habe ich ein Timer benutzt. Ich habe in DP gesucht, aber noch nichts brauchbares gefunden. Suche gerne noch. Oder kennst du ein Tutorial oder gar ein Beispiel mit POST?

Gruß
Alfonso

DeddyH 29. Aug 2011 10:10

AW: idhttp.Post parallelisieren
 
Das letzte Thread-Problem, das wir in der DP hatten, müsste das hier gewesen sein. Schau es Dir samt der Lösung einfach genau an, ob da nun eine Query oder ein IdHTTP innerhalb des Threads erstellt wird, dürfte ja letztendlich egal sein.

Luckie 29. Aug 2011 11:24

AW: idhttp.Post parallelisieren
 
Ein Threadtutorial findest du hier: http://michael-puff.de/Programmierung/Delphi/Tutorials/

Alfonso 30. Aug 2011 13:10

idhttp.Post abbrechen
 
Habe mich an Threads versucht, aber doch aufgegeben. Mit IdAntiFreeze klappts sehr gut.
Ich rufe mit idhttp1.Get(adresse) ein PHP Skript, der ca. 20 Sekunden läuft.
Wenn währenddessen jemand versucht das Programm zu beenden, wird es erst beendet, wenn idhttp1.Get fertig ist.
Gibt es eine Möglicheit das Get abzubrechen?

Gruß
Alfonso

DeddyH 30. Aug 2011 13:49

AW: idhttp.Post parallelisieren
 
Ich bin beileibe kein Indy-Experte, aber vielleicht könntest Du ein privates Flag setzen und im OnWork-Event auswerten. Ist das Flag gesetzt, schließt Du einfach die Verbindung (Abort oder so gibt es beim Get ja IIRC nicht).


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