Application.Idle导致高CPU使用率

问题描述:

我使用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

谢谢。

由于您说您正在使用Application.Idle来处理工具栏状态,因此我会断定您在Idle事件处理程序中运行的代码可能会生成Windows消息。这将被处理,并且当处理完成时,Application.Idle将被再次调用,等等......

您可以尝试减少您在闲置处理程序中生成的消息数 - 可能只是修改工具栏状态,或者你正在做什么,如果它真的有必要的话。

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