c# - 如何停止 C# 中的线程?

标签 c# tcp connection multithreading tcplistener

我已经创建了一个客户端-服务器应用程序,在服务器上我希望有机会停止服务器然后再次启动它。问题是我无法停止监听 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/

相关文章:

c# - XAML 中可重用、可重新着色的图标使用什么结构?

c# - 上传Excel文件并提取数据-asp.net mvc 3

c++ - 阻塞 TCP 套接字 : “send()” return and error handling

android - 适用于 Win32/Android 的基本 Indy TCP 客户端/服务器

c - nodejs从C接收到的buffer分为两部分

python - Aerospike 节点连接过载 - 全局连接问题

c# - Datagrid 虚拟化中的 DataGrid

c# - 当用户单击带有 MVVM 的关闭按钮时,如何在 WPF 对话框中取消等待?

mysql - 如何处理 "Unable to connect to any of the specified MySQL hosts."

java - 通过连接池建立 MySQL JDBC 连接失败 : SQL Exception: No suitable driver found