做一个局域网聊天器,用户打开软件显示form1,form1后台会运行一个线程TcpThread,用来侦听是否有需要通信的请求,当有请求时,弹出form2,进行聊天,上代码:
private void Form1_Load(object sender, EventArgs e)
{
    ... ...
    TcpThread = new Thread(listen);        
    TcpThread.Start();
    ... ...
}
private void listen()
{
     ... ...
     TcpListener = new TcpListener(ip, 20000);
     TcpListener.Start();
     ... ....//收到请求       
     Form2 talk = new Form2();                       
     Thread thread = new Thread(new ThreadStart(delegate() { talk.Show(owner); }));
     thread.SetApartmentState(ApartmentState.STA);
     thread.Start();
     ... ...
}
thread.SetApartmentState(ApartmentState.STA);如果不加这句会报DragDrop注册失败,加上这句不报错了,但是form2一闪而过就消失了,怎么解决?