While(true)循环滞后
本文关键字:循环 滞后 true While | 更新日期: 2023-09-27 18:00:11
无论如何,我正在尝试使用TCPListener和TCPClient使客户端连接到服务器每当我有while (true)
代码时,它就会冻结我的整个应用程序。
我的代码:
private void addSocket(int port)
{
server = new TcpListener(IPAddress.Any, port);
server.Start();
client = server.AcceptTcpClient();
sr = new StreamReader(client.GetStream());
sw = new StreamWriter(client.GetStream());
toolStripStatusLabel2.Text = "waiting for connection";
while (true)
{
toolStripStatusLabel2.Text = "client connected";
}
server.Stop();
client.Close();
}
while(true)
是一个无限循环,摆脱它的唯一方法是使用break
。或者将CCD_ 4更改为某个可替换地结束的条件。
在这段代码中,while(true)
部分对我来说没有任何意义,你可能也应该向该部分添加一些其他内容,例如一些连接内容等。
这是因为while (true)
永远不会结束。添加一个将在某个时刻返回false
的条件。
在这种情况下,while
对我来说没有意义。你的意图是什么?只需启动一个Task
或BackgroundWorker
来处理流。
如果你只是删除while
语句,也许你的程序会运行正常,因为我在你的代码中看不到任何需要它的地方
你不需要一直这样,是吗?
private void addSocket(int port)
{
server = new TcpListener(IPAddress.Any, port);
server.Start();
client = server.AcceptTcpClient();
sr = new StreamReader(client.GetStream());
sw = new StreamWriter(client.GetStream());
toolStripStatusLabel2.Text = "waiting for connection";
toolStripStatusLabel2.Text = "client connected";
server.Stop();
client.Close();
toolStripStatusLabel2.Text = "client not connected";
}
你只需要为它更改一个文本。然后你可以稍后更改它!!。
下次如果要使用while(true){};考虑使用线程