Application.Idle导致高CPU使用率

时间:2010-06-12 14:30:28

标签: .net cpu-usage

我使用Application.Idle事件来非常广泛地处理工具栏状态(启用/禁用)等。在我测试Norton AntiVirus 2011时,它引起了我的注意,我正在开发的应用程序在至少一个CPU上触发了高CPU使用率警告。果然,我打开了任务管理器,看着四个CPU中的一个(四核系统)接近100%。

我认为当应用程序没有执行CPU任务时,Application.Idle是处理事情的方法。为什么Application.Idle会占用CPU?

以下是我对该活动的评论:

AddHandler Application.Idle,AddressOf OnAppIdle

使用Application.Idle很长一段时间,从来不知道它会有这个问题。

使用VS 2010 .NET 4

谢谢。

1 个答案:

答案 0 :(得分:1)

由于您说您正在使用Application.Idle来处理工具栏状态,我会得出结论,您在Idle事件处理程序中运行的代码可能正在生成Windows消息。将处理哪些,并且在处理完成后,将再次调用Application.Idle,依此类推......

您可以尝试减少在空闲处理程序中生成的消息数量 - 如果实际需要,可能只修改工具栏状态或正在执行的任何操作。

如果您从空闲事件处理程序发布代码,您可能会获得更多帮助。