在socket的receive Callback 里实例化Show一个窗口未响应 为什么?

我做的客户端可以当主机也可以连接

主机显示Client连接好后发送一条信息 使Client那边Show一个窗口

但是Show出来的窗口未响应,用ShowDialog都可以。

//这是Client
void ReceiveCallback(IAsyncResult iar)
        {
            try
            {

                if (remoteSock == null || remoteSock.Connected == false)
                {
                    //断线
                    ClientClose();
                    return;
                }

                int len = remoteSock.EndReceive(iar);

                if (len == 0)
                {
                    //断线
                    ClientClose();
                    return;
                }

                message.ReadBuffer(len, HandleMessage);


                BeginReceive();               
            }
            catch (Exception e)
            {
                //断线
                ClientClose();
                return;
            }
        }
                 void HandleMessage(string json)
        {
            Console.WriteLine(json);

            var token = MessageTool.ReadJson(json);


                   Form1 fm=new Form1();
                                    fm.Show();


        }

你这是控制台程序还是winform程序?
控制台程序要加上
[STAThread]