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