Der Punkt ist folgender: Dein Thread läuft. Er ist zwar nicht sonderlich aktiv und wartet bis zum Tag des jüngsten Gerichts dass
myEvent
eintritt, aber er ist gestartet.
Wenn du ihn terminierst, läuft er weiter. Und weiter. Denn er wartet auf das Event.
Daher würde ich in deinem Thread noch die Methode
TerminatedSet
überschreiben: Diese sollte sich um das Setzen des Events kümmern, damit der Thread nicht ewig dort in seinem Execute darauf wartet, sollte es nie eingetreten sein.
Siehe auch hier:
http://www.delphipraxis.net/1254537-post13.html