我有一个线程不断阻塞套接字,读取所有内容,然后再次阻塞,等待更多。它是异步通信协议的一部分,负责获取响应并将它们分发给发出请求的各种线程/窗口。它还处理响应“还活着?”超时消息等。我正在寻找的是一种通过方法调用关闭此循环的方法,基本上是为了释放套接字以进行一些手动干预,以防万一我永远需要它。
曾经有人告诉我解除阻塞在套接字上等待的线程的方法是让其他东西在套接字上调用 Close,尽管我不想这样做,但我宁愿让它保持打开状态。我过去处理这个问题的 Kludgier 方法是关闭套接字上的阻塞,让它休眠一段时间,或者设置套接字超时以保持循环,但这两种都是轮询的形式,我想避免。
也许有某种方法我可以使用事件来做到这一点,当套接字为我提供一些数据时是否会引发事件?