Quels sont les avantages d’Ending Task par rapport à Ending Process?

9

D'après ce que je sais, chaque fois que nous voulons arrêter une application (ou une application gelée), nous allons TaskManager, sélectionner l'application Go to Processet terminer le processus. "Ending Process" est préférable à "Ending Task" (parfois "endding task" ne fonctionne pas de toute façon).

Image de fin de tâche:

entrez la description de l'image ici

Image pour terminer le processus:

entrez la description de l'image ici

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

Lorsque vous examinez les processus, notez que bien que les applications aient un processus principal, une seule application peut démarrer plusieurs processus. En général, ces processus dépendent du processus d'application principal et sont arrêtés lorsque vous terminez le processus d'application principal ou utilisez Fin de tâche. Pour cette raison, vous souhaiterez généralement terminer le processus d'application principal ou l'application elle-même plutôt que les processus dépendants.

Ils disent qu'il est préférable de "Fin de tâche" car le processus est arrêté lorsque j'arrête l'application. Mais je ne comprends pas du tout leur logique, pourquoi ne pas simplement arrêter le processus à la place?

Quels avantages Ending Taska sur Ending Process?

Pacerier
la source

Réponses:

13

Pour les programmes ayant au moins une fenêtre, Fin de tâche fait la même chose que cliquer sur le bouton X"Fermer" - il envoie le WM_CLOSEmessage à cette fenêtre, lui demandant gentiment de fermer. (Pour les fenêtres de console, l'équivalent est CTRL_CLOSE_EVENT.) Le programme peut inviter l'utilisateur à enregistrer les modifications ou à effectuer diverses tâches de nettoyage. Si le processus est conforme, le Gestionnaire des tâches attend quelques secondes et procède à l'arrêt du processus s'il est toujours en cours d'exécution.

Si le processus est gelé ou ne gère pas autrement les messages de fenêtre qu'il reçoit, alors, bien sûr, ni Fin de tâche ni le bouton Fermer ne peuvent fonctionner. Dans ces cas, Windows vous demandera généralement de mettre fin au programme avec force, mais uniquement après avoir donné au programme suffisamment de temps pour répondre.

Pendant ce temps, le bouton Fin du processus ne se préoccupe pas des tâches ou des fenêtres - il appelle la TerminateProcess()fonction et Windows détruit le processus immédiatement, sans le notifier ni lui donner la moindre chance de nettoyer.

(Des ressources telles que la mémoire sont libérées automatiquement une fois le processus terminé; cependant, il peut rester divers fichiers temporaires si le programme les a créés, et bien sûr il y a un risque de corruption des données si le processus se termine au milieu de l'enregistrement des données.)

Voir également:

user1686
la source
2
Et c'est pourquoi End Task ne fonctionne pas pour les programmes figés, non?
Daniel Beck
2

Les deux autres réponses expliquent très bien quelle est la différence en termes de ce qui se passe, mais juste pour mettre en perspective comment elles diffèrent en termes de comment cela se produit, la première dit au programme de se fermer tandis que la seconde dit à Windows de tuer le programme.

Par analogie, c'est comme la différence entre demander à quelqu'un de rassembler ses affaires et quitter la pièce et dire à un videur de les expulser immédiatement et de force.

Synetech
la source
1

Pour élaborer: End Task essaiera de fermer l'application avec élégance. S'il est bloqué, il vous donnera alors la possibilité de «terminer maintenant». Cela vous donne deux avantages par rapport à la suppression du processus (qui vient de l'effacer par la force brute):

  1. active la récupération après incident pour les applications enregistrées avec Windows Vista (et versions ultérieures) Brève description MSDN
  2. permet d'envoyer un rapport d'erreur
Mark Sowul
la source
-7

Ce n'est qu'une différence de terminologie. La côte ouest du bureau d'assistance de Microsoft indique probablement la tâche, tandis que la côte est utilise un processus techniquement correct.

Techniquement, il termine toujours le processus. La tâche est probablement un wrapper de processus montrant une fenêtre? L'aide du gestionnaire de tâches ne définit pas non plus.

ZaB
la source
3
Le terme « tâche » est correct; il a une signification différente de «processus».
user1686