Welche Vorteile hat das Beenden einer Aufgabe gegenüber dem Beenden eines Prozesses?

Welche Vorteile hat das Beenden einer Aufgabe gegenüber dem Beenden eines Prozesses?

Soweit ich weiß, gehen wir jedes Mal, wenn wir eine App (oder eine eingefrorene App) stoppen möchten, zum TaskManager, wählen die App aus Go to Processund beenden den Prozess. „Prozess beenden“ ist „Aufgabe beenden“ vorzuziehen (manchmal funktioniert „Aufgabe beenden“ sowieso nicht).

Bild für „Task beenden“:

Bildbeschreibung hier eingeben

Bild für Endvorgang:

Bildbeschreibung hier eingeben

Jedoch,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 mehrere Prozesse starten kann. Im Allgemeinen sind diese Prozesse vom Hauptanwendungsprozess abhängig und werden gestoppt, wenn Sie den Hauptanwendungsprozess beenden oder die Funktion „Task beenden“ verwenden. Aus diesem Grund möchten Sie normalerweise den Hauptanwendungsprozess oder die Anwendung selbst beenden und nicht abhängige Prozesse.

Sie sagen, dass „Task beenden“ vorzuziehen sei, da der Prozess gestoppt wird, wenn ich die App stoppe. Aber ich verstehe ihre Logik überhaupt nicht. Warum stoppt man den Prozess nicht einfach stattdessen?

Welche Vorteile Ending Taskhat gegenüber Ending Process?

Antwort1

Für Programme mit mindestens einem Fenster:Task beendenhat dieselbe Wirkung wie das Klicken auf die XSchaltfläche „Schließen“ – es sendet die WM_CLOSENachricht an das Fenster und fordert es freundlich auf, sich zu schließen. (Für Konsolenfenster ist das ÄquivalentCTRL_CLOSE_EVENT.) Das Programm kann den Benutzer auffordern, Änderungen zu speichern oder verschiedene Bereinigungsaufgaben auszuführen. Wenn der Prozess dies befolgt, wartet der Task-Manager einige Sekunden und fährt mit der Beendigung des Prozesses fort, wenn er noch ausgeführt wird.

Wenn der Prozess eingefroren ist oder aus anderen Gründen die empfangenen Fenstermeldungen nicht verarbeitet, dannTask beendennoch die Schaltfläche „Schließen“ funktionieren. In diesen Fällen fordert Windows Sie normalerweise auf, das Programm zwangsweise zu beenden, aber erst, nachdem dem Programm ausreichend Zeit zum Reagieren gegeben wurde.

InzwischenProzess beendenDie Schaltfläche kümmert sich nicht um Aufgaben oder Fenster – sie ruft die TerminateProcess()Funktion auf und Windows zerstört den Prozess sofort, ohne ihn zu benachrichtigen oder ihm die Möglichkeit zum Aufräumen zu geben.

(Ressourcen wie der Speicher werden automatisch freigegeben, sobald der Prozess beendet ist. Es können jedoch verschiedene temporäre Dateien übrig bleiben, wenn sie vom Programm erstellt wurden. Außerdem besteht natürlich die Gefahr einer Datenbeschädigung, wenn der Prozess während des Speicherns von Daten beendet wird.)

Siehe auch:

Antwort2

Die anderen beiden Antworten erklären sehr gut, was der Unterschied ist in Bezug aufWaspassiert, aber nur um zu verdeutlichen, wie sie sich unterscheiden in Bezug aufWiees passiert, die erste sagt dem Programm zu schließen, während die zweite sagt Windows zutötendas Programm.

Als Analogie lässt sich sagen, dass es sich um den Unterschied handelt, ob man jemanden auffordert, seine Sachen zusammenzupacken und den Raum zu verlassen, oder ob man einem Türsteher sagt, er solle ihn sofort und gewaltsam hinauswerfen.

Antwort3

Um es genauer zu beschreiben: End Task versucht, die App ordnungsgemäß zu schließen. Wenn sie hängen bleibt, haben Sie die Möglichkeit, sie „jetzt zu beenden“. Dies bietet Ihnen zwei Vorteile gegenüber dem Beenden des Prozesses (was ihn einfach mit roher Gewalt löscht):

  1. ermöglicht die Wiederherstellung nach einem Systemabsturz für Apps, die sich bei Windows Vista (und höher) registriert habenKurze MSDN-Beschreibung
  2. ermöglicht das Senden eines Fehlerberichts

Antwort4

Es handelt sich lediglich um eine Diskrepanz in der Terminologie. Wahrscheinlich sagt der Microsoft-Helpdesk an der Westküste „Aufgabe“, während die Ostküste den technisch korrekten „Prozess“ verwendet.

Technisch wird der Prozess trotzdem beendet. Der Task ist wahrscheinlich ein Wrapper des Prozesses, der ein Fenster anzeigt? Die Hilfe des Task-Managers gibt keine Auskunft.

verwandte Informationen