Nur so aus der Hüfte:
TThread.Synchronize(nil,
Ich mache das gerne so wie unten, mit ForceQueue statt mit Synchronize,
um noch mehr auf der sicheren Seite zu sein.
Das würde es in allen Thread/NichtTread Fällen gut abkapsel, und man muss sich weniger sorgen machen.
In dem Fall mit der Nutzereingabe ist das Timing o.ä. sowieso völlig irrelevant,
ob es eine ms mehr oder weniger braucht.
Delphi-Quellcode:
TThread.ForceQueue(nil,
procedure
begin
TDialogService.ShowMessage('Die App kann Dir keine Nachrichten senden, da die erforderliche Berechtigung dazu nicht erteilt wurde.');
end;