VB中重要的DoEvents函數
發表時間:2024-02-21 來源:明輝站整理相關軟件相關文章人氣:
[摘要]有很多程序員都不了解VB中的DoEvents函數。DoEvents函數可以臨時返回控制器給操作系統,并允許它完成其他可能發生的事件。 當一個程序的代碼需要花很長的時間去執行,比如在一個復雜的數學計算的時候,你需要運用DoEvents函數。在你代碼適當的位置調用DoEvents函數,能夠改變程序響應...
有很多程序員都不了解VB中的DoEvents函數。DoEvents函數可以臨時返回控制器給操作系統,并允許它完成其他可能發生的事件。
當一個程序的代碼需要花很長的時間去執行,比如在一個復雜的數學計算的時候,你需要運用DoEvents函數。在你代碼適當的位置調用DoEvents函數,能夠改變程序響應的時間。
這里有一個例子:在VB里創建一個標準的EXE文件并放置一個CommandButton和一個TextBox,然后,將下面的代碼放入CommandButton的單擊事件處理程序中:
Private Sub Command1_Click()
Dim i As Long, j As Long
For i = 1 To 100
Text1.Text = i
For j = 1 To 100000
NextNext
Text1.Text = “Done”
End Sub
你可以發現這個程序中有嵌套式循環,循環將持續幾秒鐘。每次,外部循環反復執行I
的值顯示在text box中。當循環結束時,Done也顯示出來了。
在你運行這個程序的時候究竟發生了什么呢?然而,text box不會改變直到Done顯示
出來。問題在于在執行循環的時候系統非常繁忙,而循環語句中的I要顯示在text box里面,這延遲windows隊列。當循環完成以后,所有的請求都被執行。
現在在Text1.Text = i調用DoEvents函數。當你運行程序的時候,你會發現text box記下了I的值。調用DoEvents函數可以釋放系統內存來完成其他請求,然后將控制器返回給VB程序。
雖然調用DoEvents函數是以速度為代價,但是可以讓程序有時間執行其他的事件,這個代價是值得的。