Я хочу создать несколько потоков пользовательского интерфейса в моем приложении. Я смоделировал сценарий, как показано ниже. Я создаю новое окно / форму по нажатию кнопки в фоне теме
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 и комментариям Ганса ниже)
установили состояние квартиры (см. код выше)
protected override void OnClosed(EventArgs e)
{
Application.Exit();
}