Synchronize = synchrone Synchronisierung
Queue = asynchrone Synchronisierung
Delphi-Quellcode:
try
//...
except
on E:
Exception do begin
S := E.
Message;
//TThread.Queue(nil, procedure // in Threads ohne eine TThread-Instanz, bzw. ohne direkten Zugang dazu
Queue(
procedure // in einer TThread-Instanz
begin
ShoweMessage(S);
end);
end;
end;
Man könnte statt dem ShowMessage auch ShowException verwenden, aber dann muß man bei asyncrhoner Anzeige entweder das ExceptObject klonen oder es von der Exceptionbehandlung abtrennen und anschließend natürlich manuell freigeben.