如何在没有过时的Thread.Suspend的情况下暂停阻塞线程?

时间:2010-11-27 09:14:38

标签: c# multithreading suspend

我有一个等待TcpListener.AcceptTcpClient()的帖子,阻止,我有时会暂停。

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

既然Thread.Suspend(...)已经过时了,我应该如何暂停该帖子?

1 个答案:

答案 0 :(得分:2)

这是不可能的,这是无法解决的竞争条件。在您想要暂停之前,侦听器可能已经接受了一微秒的连接。关闭监听器使其不接受任何连接是唯一可靠的方法。

在这里重新思考你的逻辑。无论它与你想要停止它的连接有什么关系,都可能需要锁定。