2011-10-25 17 views
5

我已經使用了計時器,我發現它非常有用,同時在幾秒或幾毫秒內做出決定。 現在我有強烈的感覺,定時器的連續運行會逐漸增加處理器週期的消耗。我已經創建了一個應用程序(C#)並使用'timer tick'來每1000毫秒(1秒)執行'three'指令,並且我注意到5分鐘後應用程序消耗了5%的CPU功耗和10% 10分鐘後。'計時器'是否需要更多CPU功率?

如果這個進度保持不變,那麼如果我在後臺運行我的應用程序,4-5小時後會發生什麼?

我應該避免過度使用計時器嗎?

private void currentTime_Tick(object sender, EventArgs e) 
{ 
    label1.Text = DateTime.Now.ToString("HH:mm:ss tt"); 
    label2.Text = dt.AddSeconds(i).ToString("HH:mm:ss"); 
    i++; 
} 
+0

哪種定時器? –

+0

我不認爲,我與計時器的使用有關。 **你的**代碼中必須有東西 –

+0

你確定它是計時器而不是其他代碼嗎?也許沒有清理的對象或者擁有越來越多數據的對象? – Oded

回答

1

在我看來,計時器本身不是原因,但無論指令是由它調用。你是在你的指令中創建對象,還是調用在單獨的線程中運行的對象?啓動線程或分配資源並忘記關閉它們肯定會導致您描述的行爲。

+0

在前兩條指令中,我將更改兩個「標籤」的「文本」,第三條指令增加一個「雙」值。 –

+2

除非這些標籤中的某些onChanged()或類似事件處於活動狀態,否則問題不應位於代碼的這一部分。你嘗試隔離問題嗎?當你在「計時器滴答聲」中註釋掉所有內容時會發生什麼?如果將計時器間隔設置爲慢10倍,或根本不啓動,會發生什麼情況? – vsz