如何等待线程中的变量发生更改?例如我想等待一个号码改变。那么除了使用 Sleep()
之外还有什么其他方法呢?
while SomeVariable > 0 do
Sleep(1);
最佳答案
如果您希望在发生变化时收到通知,那么进行一些封装可能会是您的 friend 。
如果 SomeVariable
是变量而不是属性,请将其声明更改为 const
。这将破坏写入它的所有代码。这是好事;编译器会为你找到它,而不是你必须搜索它。然后创建一个名为 SetSomeVariable
的过程(暂时将其留空)并更改损坏的代码以调用它。当一切都编译完毕后,将 SomeVariable
更改回变量,实现 setter 例程,如果可能的话,封装 SomeVariable
,这样就无法在不调用新功能。 (如果它是一个属性,您可以通过声明一个 setter 来更简单地完成这一切。)
一旦您有了一个设置其值的函数,您就可以在该过程中引入新的效果,例如让它设置 TSimpleEvent
的信号。 (或者,如果您想更复杂,请让它在新值 <> 旧值时设置信号。)
不要休眠,而是让代码 WaitFor
事件。记得之后重置它!
关于delphi - 如何等待变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770596/