loader

Wie weiß Windows, dass ein Programm nicht reagiert?

Anonim

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 von 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? Fragt es ständig alle laufenden Anwendungen 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.

Tipp Der Redaktion