为什么新线程把我的全局对象回收了
我在新一程里显示了一个窗口,窗口对象是全局的,新线程一结束,窗口对象就被回收了.我的需求是:当线程结束后,窗口依然显示,不要关闭
private From newWindow;
private void button2_Click(object sender, EventArgs e)
{
newThread = new System.Threading.Thread(new ThreadStart(this.newthread));
newThread.Start();
}
private void newthread()
{
newWindow = new From();
newWindow .Show();
} --------------------编程问答-------------------- 界面Form需要有一个线程来处理消息,这个被称为窗口主线程。这个线程停掉,窗口就会被销毁。
你上面的代码中,窗口是在第二个线程中创建的,因此,线程结束,就会被回收。
把newWindow = new From(); 这个句子,放入主线程即可解决问题。 --------------------编程问答-------------------- 同意楼上的 --------------------编程问答-------------------- 窗口的生命周期依赖与创建者线程,创建者线程一旦结束,那么在该线程内的所有窗口对象都会被销毁的。
楼主可以修改下:在主线程中创建你要的窗口,在子线程中需要显示窗口的时候,通过消息通知主线程来显示窗口,但是不能跨线程直接操作窗口对象。
补充:.NET技术 , C#