Danke für die Kommentare.
Apollonius:
zu 1: Jep, aber die
VCL erzeugt auch ständig neue Fenster (z.B. TTimer), auf diesem Marktplatz bin ich nicht neu. Das Problem mit den Desktops habe ich nicht verstanden. Habe auch noch nie mit mehreren Desktops gearbeitet. Gibt es dar Probleme, und welche?
zu 2: Das sollte man aber auch erwarten wenn man den Code (der Fenstererzeugung) innerhalb der Execute-Methode schreibt. Aber ich sehe ein, dass jemand vielleicht eine Instanz einer neuen
VCL-Komponente erstellen will. Das geht so nicht. Bei Threadsynchronisation muss man eben immer aufpassen. Das kann ich durch das klein bisschen Code nicht abnehmen.
btw: Kindthread ist eine schöne Bezeichnung. Ich habe bereits nach so etwas gesucht.
Luckie:
Ich arbeite doch gar nicht mit Critical Sections. Ok, ich nehme Events und das hat alles miteinander zu tun.
Die Idee ist, dass bei StopMainThread der MainThread durch ein Ereignis in eine Methode "gelockt" wird, in der eine Art "Schleife" ohne Application.ProcessMessages ist. Diese "Schleife" (nicht ganz Schleife ist ja nur eine Wait-Function der
WinAPI) wird durch das warten auf ein Event (welches durch StopMAinThread gesetzt wird) realisiert.
Nebenbei ist da tatsächlich noch eine Schleife drumrum wegen den synchronen Messages (ob das wirklich notwenig ist, weiß ich nicht).
Die Sache mit dem Thread von außen anhalten, musst du noch mal spezifizieren. Das habe ich nicht verstanden.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.