Любой, кто использовал Windows, видел случайное системное сообщение о том, что программа не отвечает, но как именно Windows это знает? Сегодняшнее сообщение SuperUser Q & A содержит ответ на вопрос озадаченного читателя.
Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser – подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Фото предоставлено Матиасом Риппом (Flickr).
Вопрос
Читатель SuperUser ArunPrasanth хочет знать, как Windows знает, что программа не отвечает:
Как Windows узнает, что программа не отвечает? Постоянно ли опрашивает все запущенные приложения?
Как Windows узнает, что программы не отвечают?
Ответ
Ответчик Superuser за трещотку-фрик имеет ответ для нас:
Приложение получает события из очереди, предоставленной Windows. Если приложение не опрашивает очередь событий какое-то время (5 секунд), например, при выполнении длинных вычислений, то Windows предполагает, что приложение зависло, и предупреждает пользователя.
Чтобы избежать этого, приложения должны передавать дорогостоящие вычисления рабочим потокам или разделять обработку и обеспечивать регулярный опрос очереди.
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.