第一個(gè)for完成對(duì)delay_time參數(shù)的控制,即共循環(huán)多少次內(nèi)部循環(huán)
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),定西網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:定西等地區(qū)。定西做網(wǎng)站價(jià)格咨詢:028-86922220
第二個(gè)for(內(nèi)部循環(huán)),完成對(duì)j從0到199的控制,共循環(huán)200次。
翻譯成匯編就是:
(R0為傳遞參數(shù))
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
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
VB提倡的是用定時(shí)器控件(Timer)的方法。首先在窗體放入一個(gè)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?"這個(gè)對(duì)話框是點(diǎn)擊按鈕1秒鐘后彈出來(lái)的"
Timer1.Enabled?=?False
End?Sub
此外還可以用API函數(shù)Sleep來(lái)延時(shí),或者利用循環(huán)結(jié)合時(shí)間函數(shù)來(lái)延時(shí),但它們都容易造成系統(tǒng)阻塞,所以不建議使用。
使用定時(shí)器控件還有一個(gè)最大好處,就是在延時(shí)期間你的程序還可以繼續(xù)運(yùn)行處理其他事務(wù)(比如鼠標(biāo)點(diǎn)擊、鍵盤(pán)輸入等)。而其他方法產(chǎn)生的延時(shí)效果,在延時(shí)期間就只能傻等,什么也做不了,甚至還有可能影響到其他程序。
Private Sub Button1_Click()
MsgBox("A")
Threading.Thread.Sleep(3000)
MsgBox("B")
End Sub
如果暫停的3秒有影響,就給他開(kāi)一個(gè)線程:
Private Sub Button1_Click()
Dim th As New Threading.Thread(AddressOf MsgBoxProc)
th.Start()
End Sub
Private Sub MsgBoxProc()
MsgBox("A")
Threading.Thread.Sleep(3000)
MsgBox("B")
End Sub