Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eine Funktion/Procedure mehrfach starten, bevor sie endet? (https://www.delphipraxis.net/111301-eine-funktion-procedure-mehrfach-starten-bevor-sie-endet.html)

gandime 1. Apr 2008 21:40


Eine Funktion/Procedure mehrfach starten, bevor sie endet?
 
Hi,
ich möchte eine Funktion mehrfach starten bevor sie endet.
Dieses möchte ich machen um die Bearbeitung zu beschleunigen!

Die Funktion:
Delphi-Quellcode:
Function set_pw(s_psc:string):boolean;
var
  sl:tstringlist;
begin
  sl:=tstringlist.create;
  sl.Values['psc']:=s_psc;
  idhttp.post('http://...',sl);
//bla bla bla usw
end;
Naja und diese Funktion Braucht einige sekunden bis der Server geantwortet hat usw.
Jetzt habe ich mir überlegt einen array von idhttp zu erstellen, welche dann angesprochen werden wenn sie nicht benutzt werden.
Blos die Frage ist wie ich die nächste Funktion starten kann bevor die alte beendet ist?

Delphi-Quellcode:
for i:=0 to sl_psc.count-1 do
begin
  set_pw([i]);
end;
so würde es ja nicht gehen ;-)
Die Einzige Idee die mir gekommen ist ist ein Timer.
Die Funktion kann ich auch zu einer Procedure umformen, das soll nicht das Problem sein!
Welche Alternativen gibt es?


mfg
gandime

Die Muhkuh 1. Apr 2008 21:43

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
Threads wäre eine Alternative.

Panthrax 1. Apr 2008 22:16

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
Das hier könnte dir helfen asynchone Funktions- oder Prozeduraufrufe einfach umzusetzen:Ich würde eine Umsetzung allein mit Threads anstreben.

RavenIV 2. Apr 2008 08:21

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
Zitat:

Zitat von Die Muhkuh
Threads wäre eine Alternative.

Threads wäre die einzige Möglichkeit.
Es wird nicht anderst gehen.

gandime 2. Apr 2008 18:19

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
soo habs jetzt mit dem async versucht habe aber auch schon butz nen problem... und zwar bei folgender Fehlermeldung:
Zitat:

[DCC Fehler] Unit1.pas(333): E2036 Variable erforderlich
Bei folgendem Code:

Delphi-Quellcode:
procedure TForm1.set_pw(s_psc:string;i_ht:integer);cdecl;
begin
//blabla...
end;

begin
  ac:=AsyncCall(@set_pw,[sl_temp[i_count],ii]); //fehler
end;
was mache ich falsch?

jbg 2. Apr 2008 18:26

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
Du hast "ac: IAsyncCall" nicht deklariert?

jbg 2. Apr 2008 18:29

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
Zudem würde die aufrufende Methode so lange warten bis der Thread beendet ist, da ac._Release durch den Compiler aufgerufen wird und dort die ac.Sync Methode ihren Dienst verrichtet.

gandime 2. Apr 2008 18:48

Re: Eine Funktion/Procedure mehrfach starten, bevor sie ende
 
ac is deklariert hab blos vergessen das hier ins Forum zu schreiben.
was muss ich jetzt genau machen, damit es richtig funktioniert?
jbg dich habe ich nicht richtig verstanden...

edit:
Problem gelöst die Procedure darf nicht mit TForm1 deklariert sein


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