winform 主机发给客户端信息 让客户端调用按钮visible 结果窗口未响应

我用winform做了个有主机和客户端功能的东西,用的socket

然后在里面又套了个也是winform写的回合制游戏

我在Receive CallBack里写了调用游戏里窗口控件的办法。

问题是在连接好后,打开游戏,在游戏的Form里操作控件都没什么问题

但只有Button的visible从false=true后 游戏就会未响应。

 void ReceiveCallback(IAsyncResult iar)
        {
            try
            {

                if(remoteSock == null || remoteSock.Connected == false)
                {

                    //断线
                    ClientClose();
                    return;
                }

                int len = remoteSock.EndReceive(iar);
                Console.WriteLine("接受到数据长度:" + len);

                if (len == 0)
                {

                    //断线
                    ClientClose();
                    return;
                }

                message.ReadBuffer(len, HandleMessage);


                BeginReceive();

                (form as Form1).round();
            //round里就是button.visible=true
        }

图片说明

以为是线程的问题,尝试通过改控件changetext事件里改按钮状态,结果也会未响应,真的不知道是什么问题了。 求大佬帮助

跨线程调用UI,一定要用 invoke/begininvoke,不能直接调用。
在程序运行的时候,中断,进入调试,看看程序停哪里,是否有死循环。