Wenn der Hauptthread blockiert, weil er in irgendeiner Funktion für eine gewisse Zeit gefangen ist,
dann hilft auch kein 2. Thread für die Uhr.
Grund:
man darf Controls aus der
VCL nur aus dem Hauptthread ansprechen, da die
VCL nicht "threadfest" ist.
Synchronize macht ja nichts anderes, als dem Hauptthread eine Message zu schicken mit der Anweisung "lieber Hauptthread bitte führe für mich die übergebene Methode aus".
Also ist das Grundproblem, dass der Hauptthread zu lange blockiert.
Es tut das wahrscheinlich in der Zeile
Speicher := TCPClient.IOHandler.ReadLn(wert4); // Datenempfang
.
Also muss man hier ansetzen und vom blockierenden Zugriff auf ein eventgesteuertes Vorgehen umstellen.