Das wird schon.
Im MyThread.Execute muss in einem einzelnen Schritt oder in einer Schleife ein Problem gelöst werden.
Wenn Execute verlassen wird, ist der Thread fertig.
Währenddessen können andere Threads oder eben auch die
VCL ihre eigenständigen Aufgaben erledigen.
Im Grunde ist jeder Thread ein eigenständiges Programm.
Die
VCL-Anwendung ist das, was der Nutzer sieht. Da läuft auch eine Dauer-Schleife:
- FormularZeichnen,
- TastaturPrüfen,
- MausPrüfen,
- EreignisseAbarbeiten,
- GuckenObEinThreadEtwasTunMöchte, // dann dessen Code dazwischen schieben
- WennNichtProgrammendeSchleifeVonVorn
Man darf nicht zwischen verschiedenen Threads (auch die
VCL ist ein Thread) untereinander auf Daten zugreifen. Deshalb müssen die Threads sich gegenseitig abstimmen und den eigenen Ablauf ggf. anhalten. Für die
VCL funktioniert das mit Synchronize.
Ich würde da noch nicht aufgeben an Deiner Stelle. Ist normal, dass man etwas Zeit braucht.