ich habe jetzt eine Lösung gefunden mit der mehrere (Zeichen)Threads und Mdi-Anwendung zusammen funktionieren

:
1. das Mdi erzeugt das childform und weisst das MdiParent zu.
2. das Mdi erzeugt einen neuen Thread dem das childform übergeben wird.
3. der Thread ruft Application.Run(childform) auf.
Funktionieren tuts jedenfalls problemlos.
Irgendwelche Einwände?
und schon habe ich eine neue Aufgabe:
die Childforms sollen sich ausdocken können und wieder eindocken können. Ausdocken ist kein problem (MdiParent = null). Aber beim eindocken hängts. Schließlich muss bei der MdiParent zuweisung beides in einem Thread sein...
Habe also folgenden Plan ausgetüfftelt:
1. Das Childform sagt seinem Parent das es gleich sterben wird. Der Parent startet einen Thread der als Parameter den Form und den Thread in dem der Form läuft bekommt. Dieser Thread überwacht den Thread des Kindes.
2. Das Kind beendet seinen Thread mittels Application.ExitThread.
3. Der Überwachungsthread reagiert auf Threadende. Er setzt das MdiParent neu (dar beides in einem Thread ist) und startet für das Child wieder einen eigenen Thread der wiederrum Application.Run aufruft.
Sollte doch eigentlich klappen, oder? Tut es aber nicht. Der Überwachungsthread wartet braf bis der Childthread beendet ist. Komischerweise bricht der Überwachungsthread dan einfach zwischen folgenden Zeilen ab (ohne Fehlermeldung oder sonst irgendeiner Reaktion):
C#-Code: |
Thread NeuerThread = new Thread(new ParameterizedThreadStart(MDIParent1.CreateThread));
NeuerThread.Start(toReanimateForm);
|
C# ist schon eine Sache für sich. Aber der GarbageCollector hat mich überzeugt
Gruß DerSchreiberling