Несколько потоков пользовательского интерфейса - Winforms

Я хочу создать несколько потоков пользовательского интерфейса в моем приложении. Я смоделировал сценарий, как показано ниже. Я создаю новое окно / форму нажатием кнопки в фоновом потоке

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var thread = new Thread(() =>
            {
                Form f = new Form();
                Application.Run(f);
            });

            // thread.IsBackground = true; -- Not required. See Solution below
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
        }
    }  
}

Обратите внимание, что - я делаю IsBackground = true bacause, когда пользователь закрывает основную форму, дочерние формы / окна должны также закрыть. Есть ли более чистый / изящный способ добиться того же?

РЕДАКТИРОВАТЬ - Я хочу создать выделенные потоки пользовательского интерфейса для каждого окна. У меня будет 10 таких окон, отображающих данные в реальном времени параллельно.

Решение - Это нормально? (согласно комментариям msdn и Ханса ниже) установили состояние квартиры (см. код выше)

protected override void OnClosed(EventArgs e)
{
    Application.Exit();
}

5
задан Angshuman Agarwal 27 September 2011 в 15:43
поделиться