Несколько потоков пользовательского интерфейса - 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, потому что когда пользователь закрывает основную форму, дочерние формы / окна также должны закрываться.Есть ли более чистый / изящный способ добиться того же?
РЕДАКТИРОВАТЬ - Я хочу создать выделенные потоки пользовательского интерфейса для каждого окна. У меня будет 10 таких окон, отображающих данные в реальном времени параллельно.
Решение - Это хорошо? (согласноMSDN а такжеHans' комментарии ниже) установили состояние квартиры (см код выше)
protected override void OnClosed(EventArgs e)
{
Application.Exit();
}