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