windows腳本延時(shí) VB延時(shí)函數(shù)?
VB延時(shí)函數(shù)?眾所周知,window程序的外圍是一個(gè)循環(huán),它不斷地從消息隊(duì)列中獲取消息,然后處理消息。據(jù)我所知,有兩種方法來實(shí)現(xiàn)Doevents。R常見做法:循環(huán)截取窗口信息,將消息發(fā)送給消息處理函數(shù)
VB延時(shí)函數(shù)?
眾所周知,window程序的外圍是一個(gè)循環(huán),它不斷地從消息隊(duì)列中獲取消息,然后處理消息。據(jù)我所知,有兩種方法來實(shí)現(xiàn)Doevents。R常見做法:循環(huán)截取窗口信息,將消息發(fā)送給消息處理函數(shù)(WindowProc),直到消息隊(duì)列為空,代碼繼續(xù)。R可選:在Doevents之后,代碼片段被分離,這大致類似于閉包。我們假設(shè)正在處理的消息是a。當(dāng)執(zhí)行Doevents時(shí),消息B將被發(fā)送到隊(duì)列的末尾,消息a的處理將結(jié)束。這樣,窗口消息循環(huán)自然地消化(接收)隊(duì)列中B前面的消息。當(dāng)收到消息B時(shí),Doevents之后的代碼片段將被再次處理。R VBA的實(shí)現(xiàn)可以來自以上任何一種,效果是一樣的。其目的是暫停當(dāng)前處理并讓窗口先處理其他消息。在VB6/VBA中,它經(jīng)常被濫用,因?yàn)樗枰舆t,但它不希望窗口沒有響應(yīng)。常見的錯(cuò)誤是沒有考慮延遲時(shí)間,因?yàn)轫憫?yīng)其他消息可能會(huì)改變后續(xù)代碼所依賴的環(huán)境。右