TcpListener Timeout/about/something?没有ASync?

4 .net sockets multithreading tcplistener

我创建了一个使用TcpListener的线程,当我的应用程序关闭时,我想让thead终止.我可以调用abort但由于TcpListener使用AcceptTcpClient阻塞,因此线程仍处于活动状态.

是否可以约束或设置超时或使用AcceptTcpClient进行SOMETHING?我无法想象,如果没有办法阻止它永远阻止它将是多么有用.我的代码是串行的,我希望它保持这种方式,所以有没有使用BeginAcceptTcpClient的解决方案?并编写ASync代码?

小智 13

简单解决方案 检查待处理.

while(!server.Pending())
{
    Thread.Sleep(10);
}
TcpClient client = server.AcceptTcpClient();
Run Code Online (Sandbox Code Playgroud)