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

Pet*_*ron 5 c# multithreading suspend

我有一个在等待一个线程TcpListener.AcceptTcpClient(),该,我想在次暂停.

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

现在Thread.Suspend(...)已经过时了,我应该如何暂停线程?

Han*_*ant 2

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

在这里重新思考一下你的逻辑。无论该连接将做什么,让您想要停止它,都可能需要锁定它。