![]() |
Re: Mehrere Thraeds gelichzeitig
Hallo Basilikum,
ja das scheinen die Fehler gewesen zu sein. Habs jetzt mal geändert. So läuft es. Wie stell ich es an, das ich benachrichtigt werden, wenn alle Threads beendet wurden??
Delphi-Quellcode:
Gruss Frickel
TRY
FOR i := 1 TO 10 DO T_ARR[i - 1] := T_TestThread.Create(i - 1, g_Datenbank.OutConnection); FINALLY //Hier kommt wohl noch was hin END; UNIT AddressVerifaction; INTERFACE USES Classes, g_Database, Oracle; TYPE T_TestThread = CLASS(TThread) private Buchstabe: Integer; fWorking:Boolean; PROCEDURE UpdateMemo(Sender: TObject); { Private-Deklarationen } protected PROCEDURE Execute; override; public CONSTRUCTOR Create(aBuchstabe: Integer; Connection: TOracleSession); PROPERTY Count: Integer read fCount write fCount; Property Working:Boolean Read fWorking Write fWorking; END; IMPLEMENTATION USES SysUtils, main; CONSTRUCTOR T_TestThread.Create(aBuchstabe: Integer; Connection: TOracleSession); BEGIN INHERITED Create(True); Buchstabe := aBuchstabe; FreeOnTerminate := True; OnTerminate := UpdateMemo; Working:=True; Resume; END; PROCEDURE T_TestThread.Execute; VAR i: Integer; iSuccess: Boolean; RequestData: REQ_Satz; BEGIN WHILE iSuccess DO BEGIN RequestData.A1 := '0'; RequestData.A2 := ''; RequestData.A3 := ''; RequestData.A4 := ''; RequestData.A5 := ''; RequestData.A6 := ''; RequestData.A7 := ''; RequestData.A8 := ''; iSuccess := g_Datenbank.GetRecord(RequestData); IF RequestData.A1 <> '0' THEN BEGIN //Verarbeite Daten Sleep(100); END; END; { Thread-Code hier einfügen } END; PROCEDURE T_TestThread.UpdateMemo(Sender: TObject); BEGIN //Hier würde ich erwarten, das sich die Threads schön terminieren Working:=false; END; END. |
Re: Mehrere Threads gleichzeitig
hm... irgendwie habe ich Dein Konzept noch nicht erkannt... aber trotzdem die Antwort auf Deine Frage
Zitat:
Zeitlich wäre es allerdings optimaler, immer 10 Threads laufen zu lassen und nicht zu warten, bis die ersten 10 fertig sind, und dann 10 neue starten... sprich: sobald nur noch 9 Threads laufen, muss der Master wieder einen starten.... |
Re: Mehrere Threads gleichzeitig
Hallo Frickel,
eine andere Lösung um zu erfassen wann alle Threads zerstört sind, habe ich hier ( ![]() ziemlich weit unten gepostet. Vieleicht hilft Dir das als Ansatz. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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