我有一个应用程序,其中多个子窗体是从父窗体生成的,使用单个子窗体定义(即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,那么如何获得独立运行的多个表单? –