如何在C#中停止线程?

Ema*_*uel 1 c# connection multithreading tcp tcplistener

我已经创建了一个客户端 - 服务器应用程序,并且在服务器上我希望有机会停止服务器然后再次启动它.问题是我无法阻止侦听Tcp连接的线程.

如何在C#中关闭线程?

谢谢.

private void KeepServer(){
    while (this.connected)
    {
         tcpClient = tls.AcceptTcpClient();
         Connection newConnection = new Connection(tcpClient);
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

通常,您应该通过指示您希望它们停止并让它们执行来"停止"线程.除了在您关闭整个应用程序的紧急情况之外,建议您不要使用Thread.Abort.(调用Thread.Abort当前正在执行的线程更安全,但仍然通常很苛刻.顺便说一下,这就是ASP.NET重定向时的作用.)

我有一个关于优雅地停止线程页面.当然,您不必使用那些确切的代码 - 但是设置标志并定期测试它的模式是重点.

现在,在特定情况下如何应用它将取决于您如何监听TCP连接.如果您可以发布该线程使用的代码,我们可能能够适当地调整它.