2010-06-12 101 views
1

我使用Application.Idle事件來處理工具欄狀態(啓用/禁用)等等。由於我正在測試諾頓防病毒軟件2011,它引起了我的注意,我開發的應用程序在至少一個CPU上觸發了高CPU使用率警告。果然,我打開任務管理器,觀看四個CPU(四核系統)中的一個接近100%。Application.Idle導致高CPU使用率

我認爲Application.Idle是應用程序不執行CPU任務時處理事物的方式。爲什麼Application.Idle會觸發CPU?

這是我如何連接到事件:

的AddHandler Application.Idle,AddressOf OnAppIdle

使用Application.Idle很長一段時間了,從來不知道會有這個問題。

使用VS 2010 .NET 4

謝謝。

回答

1

由於您說您正在使用Application.Idle來處理工具欄狀態,因此我會斷定您在Idle事件處理程序中運行的代碼可能會生成Windows消息。這將被處理,並且當處理完成時,Application.Idle將被再次調用,等等......

您可以嘗試減少您在閒置處理程序中生成的消息數 - 可能只是修改工具欄狀態,或者你正在做什麼,如果它真的有必要的話。

如果您從Idle事件處理程序發佈代碼,您可能會獲得更多幫助。