读书人

C#socket客户端接到服务器的回来之后弹

发布时间: 2012-09-23 10:28:11 作者: rapoo

C#socket客户端接到服务器的返回之后弹出窗口

C# code
 void ReceiveMsg()        {            while (true)            {                byte[] msgArr = new byte[1024 * 1024 * 1];//接收到的消息的缓冲区                int length = 0;                //接收服务端发送来的消息数据                length = sokClient.Receive(msgArr);//Receive会阻断线程                if (msgArr[0] == 0)//发送来的是文字                {                    string strMsg = System.Text.Encoding.UTF8.GetString(msgArr, 1, length - 1);                    if (strMsg == "1")                    {                        Form2 frm2 = new Form2();                        frm2.Show(this);                    }                                    }            }                                    }

这是接收的部分,运行后窗口时能弹出来,但是弹出后出现未响应状态 不知道怎么弄啊 求帮助 新人第一次发帖啊 求解 谢谢大家

[解决办法]
while (true)是个死循环,你在死循环里面执行
Form2 frm2 = new Form2();
frm2.Show(this);
肯定卡死,多开个线程出来处理frm2.
[解决办法]
窗口主线程的安全保护,用托管解决
[解决办法]
要另起一个现实线程,invoke出来

读书人网 >C#

热点推荐