Welche Vorteile hat Ending Task gegenüber Ending Process?

9

Soweit ich weiß, werden wir jedes Mal, wenn wir eine App (oder eine eingefrorene App) stoppen möchten, den TaskManager aufrufen, die App auswählen Go to Processund den Vorgang beenden. "Prozess beenden" wird "Aufgabe beenden" vorgezogen (manchmal funktioniert "Aufgabe beenden" sowieso nicht).

Bild für Aufgabe beenden:

Geben Sie hier die Bildbeschreibung ein

Bild für Endprozess:

Geben Sie hier die Bildbeschreibung ein

Allerdings http://technet.microsoft.com/en-us/library/bb726964.aspx :

Beachten Sie beim Untersuchen von Prozessen, dass Anwendungen zwar einen Hauptprozess haben, eine einzelne Anwendung jedoch möglicherweise mehrere Prozesse startet. Im Allgemeinen hängen diese Prozesse vom Hauptanwendungsprozess ab und werden gestoppt, wenn Sie den Hauptanwendungsprozess beenden oder End Task verwenden. Aus diesem Grund möchten Sie normalerweise den Hauptanwendungsprozess oder die Anwendung selbst beenden, anstatt abhängige Prozesse.

Sie sagen, dass es "Aufgabe beenden" vorgezogen wird, weil der Prozess gestoppt wird, wenn ich die App stoppe. Aber ich verstehe ihre Logik überhaupt nicht. Warum nicht stattdessen einfach den Prozess stoppen?

Welche Vorteile hat Ending Taskgegenüber Ending Process?

Pacerier
quelle

Antworten:

13

Bei Programmen mit mindestens einem Fenster führt End Task dasselbe aus wie das Klicken auf die XSchaltfläche "Schließen". Die WM_CLOSENachricht wird an dieses Fenster gesendet und zum Schließen aufgefordert. (Für Konsolenfenster ist das Äquivalent CTRL_CLOSE_EVENT.) Das Programm kann den Benutzer auffordern, Änderungen zu speichern oder verschiedene Bereinigungsaufgaben auszuführen. Wenn der Prozess konform ist, wartet der Task-Manager einige Sekunden und beendet den Prozess, wenn er noch ausgeführt wird.

Wenn der Prozess eingefroren ist oder auf andere Weise keine empfangenen Fensternachrichten verarbeitet, können natürlich weder Task beenden noch die Schaltfläche Schließen funktionieren. In diesen Fällen werden Sie von Windows normalerweise aufgefordert, das Programm mit Nachdruck zu beenden, jedoch erst, nachdem Sie dem Programm ausreichend Zeit gegeben haben, um zu antworten.

In der Zwischenzeit befasst sich die Schaltfläche Prozess beenden nicht mit Aufgaben oder Fenstern - sie ruft die TerminateProcess()Funktion auf und Windows zerstört den Prozess sofort, ohne ihn zu benachrichtigen oder ihm die Möglichkeit zu geben, ihn zu bereinigen.

(Ressourcen wie Speicher werden automatisch freigegeben, sobald der Prozess beendet ist. Es können jedoch verschiedene temporäre Dateien verbleiben, wenn das Programm sie erstellt hat, und natürlich besteht das Risiko einer Datenbeschädigung, wenn der Prozess während des Speicherns von Daten beendet wird.)

Siehe auch:

user1686
quelle
2
Und deshalb funktioniert End Task bei eingefrorenen Programmen nicht, oder?
Daniel Beck
2

Die beiden anderen Antworten erklären sehr gut, was der Unterschied in Bezug auf das Geschehen ist. Um jedoch zu relativieren, wie sie sich in Bezug auf das Geschehen unterscheiden, weist die erstere das Programm an, zu schließen, während die letztere Windows auffordert, das Programm zu beenden das Programm.

Als Analogie ist es wie der Unterschied, jemanden zu bitten, seine Sachen einzusammeln und den Raum zu verlassen, und einem Türsteher zu sagen, er solle sie sofort und gewaltsam herausschieben.

Synetech
quelle
1

Um dies zu erläutern: End Task versucht, die App ordnungsgemäß zu schließen. Wenn es aufgehängt ist, haben Sie die Möglichkeit, "jetzt zu beenden". Dies bietet Ihnen zwei Vorteile gegenüber dem Beenden des Prozesses (der nur durch Brute-Force ausgelöscht wird):

  1. Aktiviert die Wiederherstellung nach einem Absturz für Apps, die sich bei Windows Vista (und höher) registriert haben. Kurze MSDN-Beschreibung
  2. ermöglicht das Senden eines Fehlerberichts
Mark Sowul
quelle
-7

Es ist nur eine Diskrepanz in der Terminologie. Wahrscheinlich sagt Microsoft Helpdesk Westküste Aufgabe, während Ostküste technisch korrekte Verfahren verwendet.

Technisch beendet es immer noch den Prozess. Aufgabe ist wahrscheinlich ein Wrapper des Prozesses, der ein Fenster zeigt? Die Hilfe des Task-Managers wird ebenfalls nicht definiert.

ZaB
quelle
3
Der Begriff " Aufgabe " ist richtig; es hat eine andere Bedeutung als "Prozess".
user1686