这个消息是什么意思,是否有一个API来«响应»Microsoft Windows状态查询?
我在找一个技术上的答案。谢谢:)
这意味着程序无法为其消息队列提供服务。来自文档:
如果顶层窗口停止响应消息超过几秒,系统认为该窗口没有响应。在这种情况下,系统隐藏窗口并用具有相同Z轴顺序、位置、大小和视觉属性的幽灵窗口代替它。这允许用户移动它,调整它的大小,甚至关闭应用程序。但是,这些是唯一可用的操作,因为应用程序实际上没有响应。在调试器模式下,系统不会生成幽灵窗口。
这通常意味着程序的主线程很忙,没有经常调用GetMessage
。长时间运行的任务应该在主UI线程以外的线程上执行。
Windows应用程序通过接收窗口消息与操作系统交互。这些消息由应用程序在其主线程的循环中处理。
如果一个应用程序未能及时处理它的消息(几秒是空白),它的消息队列将被填满,Windows将此应用程序标记为"未响应",使其主窗口呈现白色等。
这种行为主要是由于在处理窗口消息的同一线程上执行长时间操作引起的。这个线程通常被称为"主UI线程"。如果你不做任何显式的多线程,它很可能是你应用程序的唯一线程。