c# 用死循环接受命令,然后弹出窗口问题

我现在做了一个socket接受程序While(true){byte[]bytes=newbyte[2048*1024];inti=GlobalV.socket.Recei... 我现在做了一个socket接受程序
While(true)
{
byte[] bytes = new byte[2048 * 1024];
int i = GlobalV.socket.Receive(bytes);
string mes = System.Text.Encoding.Unicode.GetString(bytes, 0, i);
string[] str = mes.Split('|);
if(str==”1”)
{
Form1 f1 = new Form1
F1.show();
}
}
由于这是一个死循环,所以在Form1窗体弹出来之后就存在点问题,求解应该怎么做,才能让Form1弹出来之后没问题
展开
 我来答
gushoushi
2012-04-13 · TA获得超过219个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:242万
展开全部
你是想做成一旦接收到1,然后就弹出一个窗体吧?
首先这个死循环是应该放在后台线程里边的,否则死循环容易把系统给搞死了。
其次,在线程里边对控件(form其实也是个控件),需要用委托来做,.net2005之后是这么规定的
而且打开这个窗体也应该放在一个线程里边去执行。
liuzhimin81503
2012-04-15 · 超过31用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:74.9万
展开全部
首先这个死循环是应该放在后台线程里边的,否则死循环容易把系统给搞死了。
其次,在线程里边对控件(form其实也是个控件),需要用委托来做,.net2005之后是这么规定的
而且打开这个窗体也应该放在一个线程里边去执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-04-13
展开全部
在你需要结束循环的地方加个跳出循环就可以了。break语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fej121121
2012-04-13 · TA获得超过651个赞
知道小有建树答主
回答量:655
采纳率:66%
帮助的人:530万
展开全部
用异步去执行就好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式