提一个高难度的关于ActiveX里的延时问题 ( 积分: 200 )

  • 主题发起人 主题发起人 waxohdehb
  • 开始时间 开始时间
W

waxohdehb

Unregistered / Unconfirmed
GUEST, unregistred user!
现在在写一个无界面的ActiveX控件A,要去调用现成的ActiveX控件B,在调用的时候,B会装载数据,没有任何的事件或是状态可以得到B是否已经加载完成,所以只能通过一个大概的时间估摸着它的完成.如果直接在A里面Sleep,B里面的装载过程也会随着睡眠,不知道还有没有什么办法可以在A里面即实现延时,把执行过程阻住,又可以实现让B去完成它的装载?
 
延迟的时候我感觉别使用sleep.这样系统就不响应其他处理了。你可以使用这样的方式循环延迟。
b:=now;
repeat
application.ProcessMessages;//这个必须,这样就可以延时的同时响应其他处理。
until (now-b)>1/(24*3600*1000);//1ms
 
如果ActiveB是你自己写的那么在数据加载完成后广播消息吧,如果不是就考虑其他方案。
 
不太好解决在不同的机器上装数据的时间肯定不一样的
在同一台机器上不同的时刻装载时间肯定也不一样
不过可以通过循环读取并处理消息的方式来等待,这样就不会使用系统停下来了
 
后退
顶部