Hallo Andreas,
Zitat von
Gravitar:
... Man beachte die application.processmessages in der Aufrufschleife. Wenn diese weggelassen wird, kommt es wieder zu den genannten Fehlern (..Time out...). Wer kann erklären, warum das so ist? ...
durch die Verwendung von Synchronize() wartet das Programm auf den Eintritt des
VCL MainThread in die Idle-Routine. Ohne Application.ProcessMessages() passiert das frühestens nach dem Verlassen deiner Schleife.
Deine Klasse TMyThread könnte ich mir auch ohne die feste Kopplung an die Benutzerschnittstelle vorstellen. Der Code im Anhang ist allerdings nicht getestet.
Grüße vom marabu