Windows 如何知道程序是否没有响应?澄清多线程程序

Windows 如何知道程序是否没有响应?澄清多线程程序

作为本次对话的后续问题: Windows 如何知道程序没有响应?

“Windows 如何知道程序是否没有响应?如果应用程序没有等待输入、没有处于启动处理中,并且没有在 5 秒的内部超时期限内调用 PeekMessage,则认为该应用程序没有响应。”我曾试过一个应用程序,它有许多调用 PeekMessage 的线程。如果 Windows 正在监视每个线程在 5 秒内使用其 PeekMessage 循环,或者有一个正在监视的主线程/循环在 5 秒内调用 PeekMessage,会怎样?

答案1

每个分配了消息队列的线程都必须在 Windows 分配的超时时间内处理消息。此行为包括主线程。

或许此 Microsoft 文档可以帮助你理解。

相关内容