如果让函数等待一段时间再执行?(50)

  • 主题发起人 主题发起人 Lessy
  • 开始时间 开始时间
L

Lessy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想让其中一个函数等待100ms后再执行,开始想过用sleep(100),但sleep会让整个程序暂停而不是只暂停其中一个函数,大家有没有好的方法吗?
 
难道没有这样的函数?
 
随便说个思路:建立一个线程,等待100MS,回调该函数,或者用消息响应也可以
 
那你这个函数要多线程执行才行呀.不然,都是主线程,必然会导致整个程序等待呀.
 
smlabc,aKnightChen: 可以举个简单的例子吗?
 
最简单的,你放个timer,没100ms执行一次,想执行函数就把timer.enabled:=true 不想执行就为false
 
procedure MySleep(milSeconds:Integer);var t:DWord;begin t:=GetTickCount; while GetTickCount-t < milSeconds do begin Sleep(10); Application.ProcessMessages; end;end;
 
我觉得还是hs-kill, 比较好,推荐使用!
 
用 Timer 可以
 
用createThread,里面有个参数可以设置为 suspend,然后在一个timer里做计时,到时间后将该 thread 激活即可。
 
timer不完全准确
 
CreateWaitableTimer 考虑使用APC
 
我感觉还是要用多线程,当然时间不是太长的话。用多线程,如果时间太长的话,我现在也在想一个好办法,还没有想出来
 
谢谢大家了
 
忘记给分了
 
后退
顶部