ShowMessage nutzt intern einen
VCL-Dialog und auf die
VCL sollst du doch eh nicht innerhalb des Threads direkt zugreifen
MessageBox oder eben über
TThread.Synchronize
Was genau machst du denn in den Threads?
PS: wenn man den Hauptthread schlafen legt und dann z.B. über Synchronize auf die
VCL zugreift, dann muß das natürlich erst warten, bis der Hauptthread wieder läuft, bzw. bis dieser die aktellen Befehle fertig abgearbeitet hat und so wieder Zeit für die Nachrichtenverarbeitung bekommt.
Zeig doch mal den Code von den Threads.
Dem würde ich mich anschließen.