W jaki sposób system Windows wie, że program nie odpowiada?
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, opartego na społecznościach grupowania witryn 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 ciągle odpytuje 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 ostrzega użytkownika.
Aby tego uniknąć, aplikacje powinny przesuwać drogie kalkulacje do wątków roboczych lub dzielenia przetwarzania 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.