delphi – 如何等待变量?

如何在一个线程中等待变量更改?例如我想等一个数字来改变.那么而不是使用Sleep()还有什么呢?
while SomeVariable > 0 do
Sleep(1);

解决方法

如果您希望在发生变化时收到通知,有可能是您的朋友.

如果SomeVariable是变量而不是属性,请将其声明更改为const.这会打破写入它的所有代码.这是件好事编译器找到它,而不是你必须搜索它.然后创建一个名为SetSomeVariable的过程(暂时保留为空),并更改破坏的代码调用代码.当一切都将编译时,将SomeVariable更改回变量,实现setter例程,如果可能,封装SomeVariable,所以没有任何东西可以直接设置其值而不调用函数. (如果它是一个财产,你可以通过声明一个setter来简单地做到这一点).

一旦你有一个设置它的值的功能,你可以在过程中引入新的效果,例如设置一个TSimpleEvent的信号.(或者,如果你想要更复杂的话,如果新的值<>旧值.)

而不是睡觉,有你的代码WaitFor的事件.记得稍后重设!

相关文章

ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:...
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂...
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (By...