我有一個應用程序,其中多個子窗體是從父窗體生成的,使用單個子窗體定義(即frmParent生成frmChild的多個實例)。父窗體關閉時如何關閉在自己的線程中運行的子窗體? (非MDI)
每個孩子都在自己的線程中運行 - 我希望能夠獨立地與每個孩子交互(並且我不喜歡MDI)。
所以 - 如果父窗體關閉,我該如何指導孩子窗體關閉自己?
private void btn1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(delegate()
{
using (Child child = new Child())
{
child.MyName = "1";
child.ShowDialog();
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
private void btn2_Click(object sender, EventArgs e)
{
Thread thread = new Thread(delegate()
{
using (Child child = new Child())
{
child.MyName = "2";
child.ShowDialog();
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
所有UI組件應該只在一個線程上運行:主(UI)線程。這是規則。 –
你確定他們在自己的線程?通常只有一個UI線程。你如何展示他們? –
那麼如果不使用多線程,如果您不想使用MDI,那麼如何獲得獨立運行的多個表單? –