delphi - 如何等待变量?

标签 delphi

如何等待线程中的变量发生更改?例如我想等待一个号码改变。那么除了使用 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/

相关文章:

delphi - 将信息从一种形式传递到另一种形式?

Delphi XE2 Datasnap TObject 与 TMemoryStream

delphi - 如果我在 "with"子句中创建一个对象,我还需要释放它吗?

delphi - 某些 XE2 程序在 Windows 资源管理器中不显示新的可执行图标

delphi - 如何检查当前是否显示 SHAutoComplete( ) 列表框?

android - TStringList.AddObject 不适用于 Android (Delphi)

delphi - 如何使用 rtti 将 NULL 设置为 Variant 字段

Delphi-IDE : how to change the way class-completion works?

delphi - 为什么子类中的接口(interface)没有释放

android - 从 Android 上的相机录制视频到 mp4