Что заставляет процесс отображаться как "Не реагировать в Windows"?

В чем именно "триггеры" Windows отмечают процесс, который не отвечает в диспетчере задач и мониторе ресурсов?

Ответы

Ответ 1

API за этим IsHungAppWindow. В принципе, если приложение не закачило сообщение в течение 5 секунд, оно может быть отмечено как не отвечающее.

Ответ 2

Если процесс не собирает сообщения Windows из своей очереди с помощью GetMessage или что-то связанное, оно будет помечено как "не отвечающее" - потому что оно не отвечает на события пользовательского интерфейса.

Это не обязательно означает, что приложение фактически висит - оно может быть слишком занято, чтобы обратить внимание на пользователя.

Ответ 3

В принципе, он получает его в состояние, когда программа не возвращается в точку, где она может обрабатывать очередь сообщений.

Обычно это либо цикл, который не заканчивается, либо операция блокировки, такая как чтение из сокета и т.д.

Ответ 4

Тот факт, что они не освобождают очередь сообщений, опросив его API GetMessge и т.п.