If-Koubou

W jaki sposób system Windows wie, że program nie odpowiada?

W jaki sposób system Windows wie, że program nie odpowiada? (Jak)

Każdy, kto korzystał z systemu Windows, od czasu do czasu zauważył komunikat systemowy informujący, że program nie odpowiada, ale jak dokładnie system Windows to wie? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser jest odpowiedzią na pytanie zdziwionego czytelnika.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.

Zdjęcie dzięki uprzejmości Matthiasa Rippa (Flickr).

Pytanie

Czytnik SuperUser ArunPrasanth chce wiedzieć, jak system Windows wie, że program nie odpowiada:

Jak system Windows wie, czy program nie odpowiada? Czy stale wyszukuje wszystkie uruchomione aplikacje?

Jak system Windows wie, czy programy nie reagują?

Odpowiedź

Superużytkujący pomocnik ratchet ma dla nas odpowiedź:

Aplikacja pobiera zdarzenia z kolejki udostępnianej przez system Windows. Jeśli aplikacja nie odpytuje kolejki zdarzeń przez pewien czas (5 sekund), na przykład wykonując długie obliczenia, system Windows zakłada, że ​​aplikacja jest zawieszona i powiadamia użytkownika.

Aby tego uniknąć, aplikacje powinny przesuwać drogie kalkulacje do wątków roboczych lub dzielić przetwarzanie i upewnić się, że kolejka jest regularnie odpytywana.

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.