回 帖 发 新 帖 刷新版面

主题:Timer控件的使用

請教大家:
   Timer控件在使用時,如時間屬性設定為100ms,而在Timer內的事件程序需要300ms來處理,那出現怎樣的情況?是處理完程序正常退出後再按 Timer的時間屬性重新調用程序,還是不管程序已處理完否,只要時間屬性的100ms一到就又調用這個程序?怎樣設計一個程序來測試?
謝謝了

回复列表 (共4个回复)

沙发

当然是执行完程序才会重新调用了
VB是单线程程序    除非你用了多线程
不过有的控件是多线程的 比如 webbrowser ...

你要测试的话用这个:

Private Sub Timer1_Timer()
    Static k As Long
    
    k = k + 1
    Do Until k = 300
       DoEvents
    Loop
End Sub

k 始终第一次的 k+1=0+1=1
所以不会退出 do 因为根本没再次执行 k=k+1

板凳

1楼很对

3 楼

我的看法是,不会等待,而造成资源透支。从而死机。
当然仅是猜想,也不知道正确与否。

4 楼

3楼错误,Timer 事件是同步执行方式

我来回复

您尚未登录,请登录后再回复。点此登录或注册