Das ist doch Jacke wie Hose.
Will sagen: Du kannst beides problemlos machen. Die Variante mit Synchronize hält den Thread halt mehr auf.
Dafür solltest bei dieser Variante:
Delphi-Quellcode:
procedure TMyThead.DoSendAnMain(Irgendwas: string);
begin
if Assigned(FOnSendAnMain) then
FOnSendAnMain(self, Irgendwas);
end;
Dokumentieren, dass das Event in einem separaten Thread aufgerufen wird und eventuelle Interaktionen mit der
GUI besonders behandelt werden müssen.
Je nachdem wie du das Event auslöst, muss ggf. der Empfängercode anders geschrieben werden. Du hast also die Wahl zwischen Idiotensicher (Synchronize im Thread) oder Performance.
Falls das Event ausschließlich für
GUI Darstellung genutzt wird, ist es komplett egal, da ist Variante 2 (Synchronize im Thread) vll. intuitiver.