我已经创建了一个客户端-服务器应用程序,在服务器上我希望有机会停止服务器然后再次启动它。问题是我无法停止监听 Tcp 连接的线程。
如何在 C# 中关闭线程?
谢谢。
private void KeepServer(){
while (this.connected)
{
tcpClient = tls.AcceptTcpClient();
Connection newConnection = new Connection(tcpClient);
}
}
最佳答案
通常,您应该通过指示您希望它们停止并让它们执行来“停止”线程。建议您不要使用Thread.Abort
,除非您要关闭整个应用程序的紧急情况。 (在当前执行的线程上调用 Thread.Abort
更安全,但通常仍然很麻烦。顺便说一下,这就是 ASP.NET 在重定向时所做的。)
我有一个 page about stopping threads gracefully .当然,您不必使用那个确切的代码 - 但设置标志并定期测试它的模式是要点。
现在,如何在您的特定情况下应用它取决于您监听 TCP 连接的方式。如果您可以发布该线程使用的代码,我们可能会对其进行适当的调整。
关于c# - 如何停止 C# 中的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1916792/