我有一个等待TcpListener.AcceptTcpClient()的线程,阻止了,但我有时希望将其挂起。

我已经读过Monitor.Wait(...),但是我只有使用互斥锁的经验,如果线程等待阻塞方法,它将变得很有趣。

现在Thread.Suspend(...)已过时,我应该如何挂起线程?

最佳答案

这是不可能的,这是无法解决的比赛条件。监听器可能要在微妙的时间内接受连接,然后才能挂起它。唯一肯定的方法是关闭监听器,使其不接受任何连接。

在这里重新考虑您的逻辑。与该连接有关的任何使您想要停止的连接都可能需要锁定。

关于c# - 如何在没有过时的Thread.Suspend的情况下挂起阻塞线程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4290888/

10-13 06:26