我创建了一个客户端-服务器应用程序,在服务器上我希望有机会停止服务器然后再次启动它。问题是我无法停止侦听 Tcp 连接的线程。
如何在 C# 中关闭线程?
Thanks.
private void KeepServer(){
while (this.connected)
{
tcpClient = tls.AcceptTcpClient();
Connection newConnection = new Connection(tcpClient);
}
}
一般来说,您应该通过指示您希望它们停止并让它们这样做来“停止”线程。建议您don't use Thread.Abort
除非您要关闭整个应用程序的紧急情况。 (呼叫Thread.Abort
在当前执行的线程上更安全,但通常仍然令人讨厌。顺便说一句,这就是 ASP.NET 在重定向时所做的事情。)
我有一个关于优雅地停止线程的页面 http://www.yoda.arachsys.com/csharp/threads/shutdown.shtml。当然,您不必使用确切的代码 - 但设置标志并定期测试它的模式是要点。
现在,如何将其应用于您的特定情况将取决于您如何侦听 TCP 连接。如果您可以发布该线程使用的代码,我们也许能够对其进行适当的调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)