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)循环滞后

while(true)是一个无限循环,摆脱它的唯一方法是使用break。或者将CCD_ 4更改为某个可替换地结束的条件。

在这段代码中,while(true)部分对我来说没有任何意义,你可能也应该向该部分添加一些其他内容,例如一些连接内容等。

这是因为while (true)永远不会结束。添加一个将在某个时刻返回false的条件。

在这种情况下,while对我来说没有意义。你的意图是什么?只需启动一个TaskBackgroundWorker来处理流。

如果你只是删除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){};考虑使用线程