Zitat von
wicht:
Wie machst du es denn, wenn du kein Synchronize benutzt?
Ganz einfach, ich überlege mir welche Daten ich übergeben muß. Meistens ist das keine Unmenge und man kommt schon mit einer Fensternachricht an den Hauptthread klar. Ansonsten implementiere ich Locking. Aber im Großen und Ganzen umgehe ich eit Jahren Synchronize indem ich kein Delphi mehr für meine Hauptaufgaben benutze
Anderes Beispiel: nähmen wir an jemand solle ein Array erstellen und mit Werten füllen. Das Erstellen kann im Hauptthread erfolgen, aber da die Werte bspw. über das Netzwerk angefragt werden, dauert das länger, weshalb man sich entscheidet einen Thread für jeden zu füllenden Wert zu erstellen (kann ja auch nacheinander geschehen um die Auswirkung von Timeouts zu vermindern, es müssen also nicht genausoviele Threads wie Werte existieren). Der Thread bekommt dann die Adresse des zu füllenden Wertes mit und beschreibt die unter Verwendung eines Locks (bei "viel" Daten) oder einer Interlocked-Operation bei einem kleinen Datum.