閑置循環
閑置循環
所謂閑置循環,就是當應用程序處於閑置狀態時,用一個循環來執行其他操作。第一種一般來說,閑置循環是為了防止程序運行過快。值得注意的是,vb中的閑置循環會降低程序的運行速度。
Visual Basic語言具有事件驅動的特點,即某事件發生時才執行相應的程序。如果程序在運行中,沒有任何事件發生,則應用程序處於“閑置”(Idle)狀態。另一方面,當Visaul Basic正在執行某一過程(即“忙碌”狀態)時,將停止對其他事件的處理(如不再接受滑鼠、鍵盤事件),直至這一過程處理完畢。
為了改變這種執行順序,VB提供了閑置循環(Idle Loop)和Doevents語句。所謂閑置循環,就是當應用程序處於閑置狀態時,用一個循環來執行其他操作。當執行閑置循環時將佔用全部CPU時間,不允許執行其他事件過程,使系統處於無限循環中,沒有任何反應。為此,VB提供了一個DoEvents語句,使得當執行閑置循環時,可以通過該語句把控制權交給周圍環境使用,然後回到原程序繼續執行。
第一種
一般來說,閑置循環是為了防止程序運行過快。每個人的計算機各不相同,計算速度各異,如果不對速度加以限制,比如cs(不知道你玩過沒),那豈不是一些人跑得飛快,一些人寸步難行?而閑置循環可以使得你當前程序運行,渲染等等好以後,等待一段時間,使得所有機器同步。一般來說閑置循環都是配合計時器使用的。
大意就是,由於各個機器運算速度不同,閑置循環使快的機器執行完一個進程之後什麼都不做,等慢的機器。這在一些需要同步的程序里尤為重要。
第二種
當程序在處理耗時較長的循環時,會出現“假死”的情況――該程序不能接受任何事件,windows提示程序無響應。這時,可以利用閑置循環語句釋放控制權,防止其壟斷控制權,使程序表現出仍在響應的狀態,使其可以接受其它控制項的事件,防止假死。
值得注意的是,vb中的閑置循環會降低程序的運行速度。