民调本身并不是"错误的".
这在很大程度上取决于它的实施方式和目的.如果你真的关心即时通知一个变更,那么它是非常有效的.您的代码处于紧密循环中,不断轮询(询问)资源是否已更改/更新.这意味着你会尽快得到通知,事情有所不同.但是,您的代码没有做任何其他事情,而且对相关对象的多次调用会带来开销.
如果你不太关心即时通知,你可以增加投票之间的间隔,这也可以很好地工作,但 Select 正确的间隔可能会很困难.如果时间太长,您可能会错过关键的更改;如果时间太短,您将回到第一种方法的问题.
替代方案(如中断或消息等)可以在这些情况下提供更好的折衷方案.您会在实际可能的情况下尽快得到更改通知,但此延迟不是您所能控制的,它取决于组件本身传递状态更改的及时性.
民调的"错"在哪里?
但是...