Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
Delphi 11 Alexandria
|
AW: Thread beenden durch Button clicked
10. Okt 2016, 17:40
Grundsätzlich kann man das Grid aus dem Thread heraus befüllen, wenn dies synchronisiert erfolgt. So lange steht halt der Thread.
Wenn man ein Zwischenergebnis schnell in eine Liste wirft, kann der Thread sofort weiter wuseln und das nächste Ergebnis holen.
Der Mainthread kann dann nach und nach ein Ergebnis aus der Liste holen und dieses darstellen.
In dem Fall muss aber die Liste gegen konkurrierende Zugriffe abgesichert werden (z.B. mit CriticalSections) damit der Thread die Liste nicht beschreiben will während der Mainthread einen Eintrag entnimmt und die Liste kürzt. Der Thread könnte dann keinen Eintrag mehr hinter die ermittelte letzte Position hängen, da die inzwischen nicht mehr existiert.
Also ist die ursprüngliche Lösung die einfachere und bessere, sofern diese keine Performanceprobleme mit sich bringt.
|