Damit eine Form funktioniert braucht sie ein Message Pump in dem Thread zu dem sie gehört.
Die startet man (übrigens genauso wie im Hauptthread) mit Application.Run.
Also solltest du dein Form wie folgt anzeigen.
C#-Quelltext
1: 2:
| UI_Stats_Master form = new UI_Stats_Master(); Application.Run(form); |
Das als MDIChild ein Form aus einem anderen Thread als der MDIParent herhalten kann bezweifle ich aber. Das sollte dir mit CrossThread Call Exceptions um die Ohren fliegen.
Dein gezeigter Code funktioniert(oder eher nicht) weil deine erzeugte Form gar nicht in dem erzeugten Thread myThread läuft. Du erzeugst ja die Form im MethodInvoker Delegaten der wenn ich deinen Codeausschnitt richtig interpretiere im Hauptthread läuft. Somit gehört myui_stats_master auch zum Hauptthread.