作为本次对话的后续问题: Windows 如何知道程序没有响应?
“Windows 如何知道程序是否没有响应?如果应用程序没有等待输入、没有处于启动处理中,并且没有在 5 秒的内部超时期限内调用 PeekMessage,则认为该应用程序没有响应。”我曾试过一个应用程序,它有许多调用 PeekMessage 的线程。如果 Windows 正在监视每个线程在 5 秒内使用其 PeekMessage 循环,或者有一个正在监视的主线程/循环在 5 秒内调用 PeekMessage,会怎样?
答案1
每个分配了消息队列的线程都必须在 Windows 分配的超时时间内处理消息。此行为包括主线程。
或许此 Microsoft 文档可以帮助你理解。