Як програма Windows знає, що програма не відповідає?
Кожен, хто використовував Windows, бачив випадкове системне повідомлення про те, що програма не відповідає, але як саме це знає Windows? Сьогоднішня стаття SuperUser Q&A відповідає на запитання читача.
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..
Фото надано Маттіасом Ріппом (Flickr).
Питання
Читач SuperUser ArunPrasanth хоче знати, як Windows знає, що програма не відповідає:
Як Windows знає, чи не реагує програма? Чи постійно він опитує всі запущені програми?
Як Windows знає, чи не реагують програми?
Відповідь
Суперпопулярний учасник храповика має відповідь для нас:
Програма отримує події з черги, що надається Windows. Якщо програма не проводить опитування черги подій протягом деякого часу (наприклад, 5 секунд), наприклад, довгий розрахунок, то Windows припускає, що програма зависла і сповіщає користувача.
Щоб уникнути цього, програми повинні підштовхнути дорогі обчислення до робочих потоків або розділити обробку і переконатися, що чергу отримують регулярно.
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.