有時候我們需要代碼延遲執行,這就需要用到Thread.Sleep()這個方法,但這個方法在主線程使用時會造成界面假死。使用timer控件既能達到代碼延遲執行的效果,又不會有假死的困擾。
假設我們需要在窗體的MouseMove事件里進行鼠標坐標的計算,但是MouseMove事件的執行是相當頻繁的,如果每觸發一次事件就計算一次,cpu占用率會非常高。有沒有辦法減少計算的次數呢?
首先聲明timer控件
PRivate System.Timers.Timer mTimer;mTimer = new System.Timers.Timer(200);mTimer.AutoReset = false;mTimer.Enabled = false;mTimer.Elapsed += new System.Timers.ElapsedEventHandler(mTimer_Elapsed);
在窗體的MouseMove事件里執行以下代碼
if (!this.mTimer.Enabled)
{ this.mTimer.Enabled = true; this.mTimer.Start();}
在timer時間達到間隔時間的事件里執行計算代碼
新聞熱點
疑難解答