![]() |
Delphi-Version: 5
MultiThreading
Moin,
Keine Ahnung ob es der richtige Bereich ist, ansonsten einfach verschieben ;) Also mein Anliegen: Ich möchte gerne beim Laden meines Programmes eine Datei auslesen und das Ergebnis in einer globalen Variablen halten. Der Vorgang dauert ggf. einige Zeit, so dass ich es gerne in einen separten Thread verlagern möchte. Das Ergebnis soll eine TStringList o.ä. sein. Es handelt sich dabei nur um die Zuordnung von einer ID zu einem String. Desweiteren möchte ich gerne bei einem Aufruf eines Formulars überprüfen, ob es neue Einträge gibt, wenn ja, dann hinzufügen, sonst nichts machen. Das funktioniert singlethread bereits alles so, wie es soll. Allerdings benötigt der Aufbau der Liste ~5 Sekunden, was zu lang ist. Und zu guter Letzt: Wenn in dem Form die Liste verwendet wird, soll geschaut werden, ob sie sich noch im Aufbau befindet, dann warten, sonst benutzen. Alle Klarheiten beseitigt? Gerne ein wenig Beispielcode damit komme ich meist besser zu recht. Danke! PS Delphi 12 |
AW: MultiThreading
Würde ich so eins zu eins in ChatGPT eingeben. "Danke!" könnte man weg lassen.
|
AW: MultiThreading
Spitzenantwort, ich nutze kein ChatGPT und habe gestern im Radio erfahren, dass Höflichkeiten bei der Verwendung sehr viele Ressourcen binden.
|
AW: MultiThreading
Kann sein das ich dich falsch verstanden habe. Was genau ist deine Frage?
|
AW: MultiThreading
Delphi-Quellcode:
Der Zugriff im Form auf MyList wartet bei Bedarf auf die Fertigstellung.
unit uMyList;
interface function MyList: TStringList; implementation uses System.Threading; var InternalFuture: IFuture<TStringList>; InternalList: TStringList; function MyList: TStringList; begin Result := InternalFuture.Value; end; initialization InternalList := TStringList.Create; InternalFuture := TTask.Future<TStringList>( function: TStringList begin Result := InternalList; for var I := 1 to 10000000 do Result.Add(I.ToString); end); finalization InternalList.Free; InternalList := nil; end; |
AW: MultiThreading
Danke Uwe, ich probiere es mal damit.
@Edelfix Wie man so etwas am geschicktesten angeht. |
AW: MultiThreading
Hat funktioniert, vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 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