当前位置:编程学习 > C#/ASP.NET >>

为什么新线程把我的全局对象回收了

我在新一程里显示了一个窗口,窗口对象是全局的,新线程一结束,窗口对象就被回收了.
我的需求是:当线程结束后,窗口依然显示,不要关闭
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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,