5

我有一个等待的线程TcpListener.AcceptTcpClient(),它会阻塞,有时我想暂停。

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

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

4

1 回答 1

2

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

在这里重新考虑你的逻辑。无论它对那个让你想停止它的连接做什么,都可能需要被锁定。

于 2010-11-27T11:00:03.980 回答