¿Qué ventajas tiene Ending Task sobre Ending Process?

¿Qué ventajas tiene Ending Task sobre Ending Process?

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 "Finalizar proceso" a "Finalizar tarea" (a veces "finalizar tarea" no funciona de todos modos).

Imagen para finalizar la 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 varios procesos. Generalmente, estos procesos dependen del proceso de aplicación principal y se detienen cuando finaliza el proceso de aplicación principal o utiliza Finalizar tarea. Debido a esto, normalmente querrás finalizar el proceso de aplicación principal o la aplicación misma en lugar de los procesos dependientes.

Dicen que es preferible "Finalizar tarea" porque el proceso se detiene cuando paro la aplicación. Pero no entiendo su lógica en absoluto. ¿Por qué no simplemente detener el proceso?

¿Qué ventajas Ending Tasktiene sobre Ending Process?

Respuesta1

Para programas que tienen al menos una ventana,Tarea finalhace lo mismo que hacer clic en el Xbotón "Cerrar": envía el WM_CLOSEmensaje a esa ventana, pidiéndole amablemente que se cierre. (Para consolas Windows, el equivalente esCTRL_CLOSE_EVENT.) El programa puede solicitar al usuario que guarde los cambios o realice varias tareas de limpieza. Si el proceso se cumple, el Administrador de tareas espera unos segundos y procede a finalizar el proceso si aún se está ejecutando.

Si el proceso está congelado o no maneja los mensajes de ventana que recibe, entonces, por supuesto, tampocoTarea finalni el botón Cerrar puede funcionar. En esos casos, Windows normalmente le pedirá que finalice el programa a la fuerza, pero sólo después de darle tiempo suficiente para responder.

Mientras tanto, elProceso finalizadoEl botón no se ocupa de las tareas ni de las ventanas: llama a la TerminateProcess()función y Windows destruye el proceso inmediatamente, sin avisarle ni darle la oportunidad de limpiarlo.

(Los recursos como la memoria se liberan automáticamente una vez que finaliza el proceso; 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 mientras se guardan los datos).

Ver también:

Respuesta2

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

Como analogía, es como la diferencia entre pedirle a alguien que recoja sus cosas y salga de la habitación y decirle a un portero que lo empuje inmediatamente y por la fuerza.

Respuesta3

Para dar más detalles: Finalizar tarea intentará cerrar la aplicación correctamente. Si está colgado, le dará la opción de "finalizar ahora". Esto le brinda dos beneficios en comparación con matar el proceso (que simplemente lo elimina con fuerza bruta):

  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

Respuesta4

Es simplemente una discrepancia en la terminología. Probablemente el servicio de asistencia técnica 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 un contenedor de proceso que muestra una ventana? La ayuda del administrador de tareas tampoco define.

información relacionada