Die Frage lässt sich immer ganz simpel selber beantworten:
Delphi-Quellcode:
if MainThreadID = TThread.CurrentThread.ThreadID then
// ohne Sync
else
// mit Sync
PS: Da bei den Indys oft auch noch Threads innerhalb benutzt werden, kann man es da niemals mit Bestimmtheit sagen (ohne den Code auseinanderzunehmen), ob die Events im Kontext des aufrufenden Threads erfolgen oder schon synchronisiert. Darum im Zweifelsfall immer vor dem Synchronize prüfen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)