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出来