Perform könnte maximal programmintern schneller sein, da dort unter Umständen einige Umwege der
VCL direkt abgekürzt werden können, aber programmextern geht es da auch wieder nur über SendMessage, wo es dann am Ende sogar langsamer sein müßte.
Und SendMessage wird
nicht sofort ausgeführt.
Wenn gerade eine andere Message beim Empfänger in Bearbeitung ist, dann sollte dieses erst nach Beendigung dieser Bearbeitung ausgeführt werden ... wre auch blöd, weil man sonst ja auch noch alles Multithreadingfähig ausrüsten, wenn mehrere Messages (egal ob per SendMessage oder aus MessagePool via PostMessage) gleichzeitig ausgeführt werden würden
Aber:
- bei PostMessage wird die Nachricht an die MessageQueue angehängt und sozusagen erst nach allen anderen Nachrichten, welche schon im Pool drin sind, abgearbeitet (falls die MessageQueue nicht voll ist und die Nachricht nichtmal dort reingesellt wird)
- SendMessage kommt noch vorm Pool (MessageQueue) dran, aber vermutlich auch erst nachdem andere SendMessageSendMessages, welche vorher (seit Beginn der letzen Nachrichtenbearbeitung des Programm) losgeschickt/gestartet wurden.