Da finde ich den Thread eleganter
Visuelle Ausgabe geht ja über die synchronize() -Methode ohne allzuviel Aufwand, und man kann das Warten einfach abbrechen indem man den Thread beendet.
Das könnte dann ungefähr so aussehen:
Delphi-Quellcode:
procedure TMyThread.Execute;
begin
while not Terminated do
begin
synchonize(GetNewJob);
if {Job bekommen} then
begin
// Anwendung aufrufen und warten
Output := ...;
synchronize(JobDone);
end
else
Suspend;
end;
end;