So öffnen Sie ein Formular in einem Thread und erzwingen, dass es geöffnet bleibt

Ich habe immer noch Probleme, herauszufinden, wie man WinForms in einem separaten UI-Thread erstellt, den ich besprochen habeHier.

Um dies herauszufinden, habe ich das folgende einfache Testprogramm geschrieben. Ich möchte einfach, dass ein Formular in einem separaten Thread mit dem Namen "UI-Thread" geöffnet wird und der Thread so lange ausgeführt wird, wie das Formular geöffnet ist, während der Benutzer mit dem Formular interagieren kann (Drehen ist Betrügen). Ich verstehe, warum das Folgende fehlschlägt und der Thread sofort geschlossen wird, bin mir aber nicht sicher, was ich tun soll, um es zu beheben.

using System;
using System.Windows.Forms;
using System.Threading;

namespace UIThreadMarshalling {
    static class Program {
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            var tt = new ThreadTest();
            ThreadStart ts = new ThreadStart(tt.StartUiThread);
            Thread t = new Thread(ts);
            t.Name = "UI Thread";
            t.Start();
            Thread.Sleep(new TimeSpan(0, 0, 10));
        }

    }

    public class ThreadTest {
        Form _form;
        public ThreadTest() {
        }

        public void StartUiThread() {
            _form = new Form1();
            _form.Show();
        }
    }
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage