¿Qué ventajas tiene Ending Task sobre Ending Process?

9

Por lo que sé, cada vez que queramos detener una aplicación (o una aplicación congelada), iremos al Administrador de tareas, seleccionaremos la aplicación Go to Processy finalizaremos el proceso. Se prefiere "Proceso de finalización" sobre "Tarea de finalización" (a veces la "tarea de finalización" no funciona de todos modos).

Imagen para finalizar tarea:

ingrese la descripción de la imagen aquí

Imagen para el proceso final:

ingrese la descripción de la imagen aquí

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

Al examinar los procesos, tenga en cuenta que aunque las aplicaciones tienen un proceso principal, una sola aplicación puede iniciar múltiples procesos. En general, estos procesos dependen del proceso de la aplicación principal y se detienen cuando finaliza el proceso de la aplicación principal o utiliza Finalizar tarea. Debido a esto, generalmente querrá terminar el proceso de la aplicación principal o la aplicación en sí en lugar de los procesos dependientes.

Dicen que se prefiere "Finalizar tarea" porque el proceso se detiene cuando detengo la aplicación. Pero no entiendo su lógica en absoluto, ¿por qué no simplemente detener el proceso en su lugar?

¿Qué ventajas Ending Tasktiene sobre Ending Process?

Pacerier
fuente

Respuestas:

13

Para los programas que tienen al menos una ventana, Finalizar tarea hace lo mismo que hacer clic en el botón X"Cerrar": envía el WM_CLOSEmensaje a esa ventana y le pide que cierre bien. (Para las ventanas de la consola, el equivalente es CTRL_CLOSE_EVENT). El programa puede solicitar al usuario que guarde los cambios o que realice varias tareas de limpieza. Si el proceso cumple, el Administrador de tareas espera unos segundos y continúa con la finalización del proceso si aún se está ejecutando.

Si el proceso se congela o no maneja los mensajes de la ventana que recibe, entonces, por supuesto, ni la tarea Finalizar ni el botón Cerrar pueden funcionar. En esos casos, Windows generalmente le pedirá que finalice el programa con fuerza, pero solo después de darle al programa el tiempo suficiente para responder.

Mientras tanto, el botón Finalizar proceso no se ocupa de tareas o ventanas: llama a la TerminateProcess()función y Windows destruye el proceso de inmediato, sin notificarlo ni darle ninguna posibilidad de limpieza.

(Los recursos, como la memoria, se liberan automáticamente una vez que el proceso desaparece; sin embargo, pueden quedar varios archivos temporales si el programa los creó y, por supuesto, existe el riesgo de corrupción de datos si el proceso finaliza en medio de guardar los datos).

Ver también:

usuario1686
fuente
2
Y es por eso que End Task no funciona para programas congelados, ¿verdad?
Daniel Beck
2

Las otras dos respuestas hacen un buen trabajo al explicar cuál es la diferencia en términos de lo que sucede, pero solo para poner en perspectiva cómo difieren en términos de cómo sucede, el primero le dice al programa que cierre mientras que el segundo le dice a Windows que mate el programa.

Como analogía, es como la diferencia entre pedirle a alguien que recoja sus cosas y salir de la habitación y decirle a un portero que la expulse de inmediato y por la fuerza.

Synetech
fuente
1

Para elaborar: Finalizar tarea intentará cerrar la aplicación con gracia. Si está colgado, le dará la opción de "finalizar ahora". Esto le da dos beneficios sobre matar el proceso (que solo la fuerza bruta lo borra):

  1. permite la recuperación de fallas para aplicaciones que se han registrado con Windows Vista (y superior) Breve descripción de MSDN
  2. permite enviar un informe de error
Mark Sowul
fuente
-7

Es solo una falta de correspondencia en la terminología. Probablemente el servicio de asistencia de Microsoft en la costa oeste diga la tarea, mientras que la costa este utiliza un proceso técnicamente correcto.

Técnicamente todavía termina el proceso. ¿La tarea es probablemente una envoltura de proceso que muestra una ventana? La ayuda del administrador de tareas tampoco define.

ZaB
fuente
3
El término " tarea " es correcto; tiene un significado diferente de "proceso".
user1686