Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Wie eine Uhr über einen Thread aktualisieren

  Alt 5. Nov 2010, 15:16
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.
Andreas
  Mit Zitat antworten Zitat