Wie weiß Windows, dass ein Programm nicht reagiert?
Jeder, der Windows verwendet hat, hat gelegentlich eine Systemmeldung gesehen, die besagt, dass ein Programm nicht antwortet. Wie genau weiß Windows das? Der heutige Q & A-Beitrag von SuperUser hat die Antwort auf eine verblüffte Leserfrage.
Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.
Foto mit freundlicher Genehmigung von Matthias Ripp (Flickr).
Die Frage
SuperUser-Leser ArunPrasanth möchte wissen, wie Windows weiß, dass ein Programm nicht reagiert:
Woher weiß Windows, ob ein Programm nicht reagiert? Ruft alle laufenden Anwendungen ständig ab?
Woher weiß Windows, ob Programme nicht reagieren??
Die Antwort
Der Ratsche-Freak von SuperUser hat die Antwort für uns:
Eine Anwendung erhält Ereignisse aus einer von Windows bereitgestellten Warteschlange. Wenn die Anwendung die Ereigniswarteschlange (5 Sekunden) nicht abfragt (z. B. eine lange Berechnung), nimmt Windows an, dass die Anwendung blockiert ist, und benachrichtigt den Benutzer.
Um dies zu vermeiden, sollten Anwendungen teure Berechnungen an Worker-Threads verteilen oder die Verarbeitung aufteilen und sicherstellen, dass die Warteschlange regelmäßig abgefragt wird.
Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.