L Lessy Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-08 #1 我想让其中一个函数等待100ms后再执行,开始想过用sleep(100),但sleep会让整个程序暂停而不是只暂停其中一个函数,大家有没有好的方法吗?
S smlabc Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-08 #3 随便说个思路:建立一个线程,等待100MS,回调该函数,或者用消息响应也可以
A aKnightChen Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-08 #4 那你这个函数要多线程执行才行呀.不然,都是主线程,必然会导致整个程序等待呀.
L Lessy Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-08 #5 smlabc,aKnightChen: 可以举个简单的例子吗?
H hs-kill Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-08 #6 最简单的,你放个timer,没100ms执行一次,想执行函数就把timer.enabled:=true 不想执行就为false
Z znxia Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-08 #7 procedure MySleep(milSeconds:Integer);var tWord;begin t:=GetTickCount; while GetTickCount-t < milSeconds do begin Sleep(10); Application.ProcessMessages; end;end;
procedure MySleep(milSeconds:Integer);var tWord;begin t:=GetTickCount; while GetTickCount-t < milSeconds do begin Sleep(10); Application.ProcessMessages; end;end;
L laiqing Unregistered / Unconfirmed GUEST, unregistred user! 2009-07-23 #10 用createThread,里面有个参数可以设置为 suspend,然后在一个timer里做计时,到时间后将该 thread 激活即可。
关 关门放狗 Unregistered / Unconfirmed GUEST, unregistred user! 2009-07-23 #12 CreateWaitableTimer 考虑使用APC
Z zlkxzy Unregistered / Unconfirmed GUEST, unregistred user! 2009-07-23 #13 我感觉还是要用多线程,当然时间不是太长的话。用多线程,如果时间太长的话,我现在也在想一个好办法,还没有想出来