(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: Workerthread: Der Diener im Hintergrund
26. Aug 2009, 19:12
Hi,
der Job wird dann natürlich im Hauptthread ausgeführt. Ich verwende das z.B. für Jobs, die meine Controls aktualisieren: Ein Job (der im Hintergrund läuft) erzeugt dann zum Schluss einen synchronisierten Job, der irgendwelche Aktualisierungen im Formular durchführt.
Um das Ende aller Jobs mitzubekommen, kannst Du doch zum Schluss einen 'Ende-Job' in die Queue einfügen. Wenn das nicht geht, würde ich pollen. Woher soll der Pool auch wissen, das alle Jobs abgearbeitet wurden?
Mit Hilfe der TWorkerThread.Notify-Methode kann ein Job eine synchronisierte Nachricht verschicken. Diese wird über das ThreadPool.OnNotify-Ereignis verschickt. Siehe Demo.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|