可以用定時器,設置個中斷時間間隔,時間一到就進入中斷,可用于按一定規(guī)律延時的情況。
我們提供的服務有:成都做網(wǎng)站、成都網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、濱海新區(qū)ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的濱海新區(qū)網(wǎng)站制作公司
也可以用Timer函數(shù),如以下是延時100ms:
T1=Timer
Do While(Timer-T10.1)
X=DoEvents
LOOP
注意,用這二種方法的延時只有在延時時間20ms以上才比較準,時間越小越不準。
第一個for完成對delay_time參數(shù)的控制,即共循環(huán)多少次內部循環(huán)
第二個for(內部循環(huán)),完成對j從0到199的控制,共循環(huán)200次。
翻譯成匯編就是:
(R0為傳遞參數(shù))
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
VB提倡的是用定時器控件(Timer)的方法。首先在窗體放入一個Timer1和Command1,然后輸入以下代碼:
Private?Sub?Command1_Click()
Timer1.Interval?=?1000
Timer1.Enabled?=?True
End?Sub
Private?Sub?Form_Load()
Timer1.Enabled?=?False
End?Sub
Private?Sub?Timer1_Timer()
MsgBox?"這個對話框是點擊按鈕1秒鐘后彈出來的"
Timer1.Enabled?=?False
End?Sub
此外還可以用API函數(shù)Sleep來延時,或者利用循環(huán)結合時間函數(shù)來延時,但它們都容易造成系統(tǒng)阻塞,所以不建議使用。
使用定時器控件還有一個最大好處,就是在延時期間你的程序還可以繼續(xù)運行處理其他事務(比如鼠標點擊、鍵盤輸入等)。而其他方法產生的延時效果,在延時期間就只能傻等,什么也做不了,甚至還有可能影響到其他程序。
Imports System.Threading
Thread.Sleep(1000)’延遲1秒
2.PauseWait(1000)’延遲1秒
Public Sub PauseWait(ByVal HowLong As Long)
Dim tick As Long
tick = My.Computer.Clock.TickCount
Do
My.Application.DoEvents()
Loop Until tick + HowLong My.Computer.Clock.TickCount
End Sub