VB.NET DoEvents重要性體現
VB.NET編程語言應用方式靈活,運用范圍廣泛,深受廣大編程人員的喜愛。不過要想熟練的掌握這一語言的應用技巧,也并不是非常容易的。其中,各種函數的應用方式就是一個比較難啃的骨頭。
有很多程序員都不了解VB.NET DoEvents。DoEvents函數可以臨時返回控制器給操作系統,并允許它完成其他可能發生的事件。
當一個程序的代碼需要花很長的時間去執行,比如在一個復雜的數學計算的時候,你需要運用VB.NET 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 #t#
的值顯示在text box中。當循環結束時,Done也顯示出來了。
在你運行這個程序的時候究竟發生了什么呢?然而,text box不會改變直到Done顯示
出來。問題在于在執行循環的時候系統非常繁忙,而循環語句中的I要顯示在text box里面,這延遲windows隊列。當循環完成以后,所有的請求都被執行。
現在在Text1.Text = i調用VB.NET DoEvents。當你運行程序的時候,你會發現text box記下了I的值。調用DoEvents函數可以釋放系統內存來完成其他請求,然后將控制器返回給VB程序。
雖然調用VB.NET DoEvents是以速度為代價,但是可以讓程序有時間執行其他的事件,這個代價是值得的。