用于TCP侦听的线程抛出StackoverflowException

时间:2014-12-07 04:31:08

标签: c# multithreading exception stack-overflow

我在监听TCPListener中的连接时遇到问题,基本上我是在不同的线程上运行它,因为:

listenThread = new Thread(new ThreadStart(Listen));

void Listen(...)
{
    while (true)
    {
        Socket socket = Listener.AcceptSocket(); 
        Connection connection = new Connection(socket);
        connection.onInit();
        Thread.Sleep(100);
        Listen();
    }
}

我不知道接下来要做什么来解决这个“Stackoverflow”异常,我需要在不同的线程上监听连接,就像我编写它的方式,修改它的任何建议?

1 个答案:

答案 0 :(得分:4)

Listen()正在调用自身,最终会导致堆栈溢出。

只需在while循环结束时删除对Listen()的调用。