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弹出来之后没问题 展开
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弹出来之后没问题 展开
4个回答
展开全部
首先这个死循环是应该放在后台线程里边的,否则死循环容易把系统给搞死了。
其次,在线程里边对控件(form其实也是个控件),需要用委托来做,.net2005之后是这么规定的
而且打开这个窗体也应该放在一个线程里边去执行。
其次,在线程里边对控件(form其实也是个控件),需要用委托来做,.net2005之后是这么规定的
而且打开这个窗体也应该放在一个线程里边去执行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-04-13
展开全部
在你需要结束循环的地方加个跳出循环就可以了。break语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用异步去执行就好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询