Quais são as vantagens da Finalização de Tarefas sobre o Processo Final?

9

Pelo que eu sei, toda vez que quisermos parar um aplicativo (ou um aplicativo congelado), vamos para o TaskManager, selecionamos o aplicativo, Go to Process e terminamos o processo. "Ending Process" é preferido em relação a "Ending Task" (por vezes, "terminando a tarefa" não funciona de qualquer maneira).

Imagem da tarefa final:

Imagemparaoprocessofinal:

No entanto, o link :

As you examine processes, note that although applications have a main process, a single application may start multiple processes. Generally, these processes are dependent on the main application process and are stopped when you terminate the main application process or use End Task. Because of this, you'll usually want to terminate the main application process or the application itself rather than dependent processes.

Eles estão dizendo que é preferível "Finalizar tarefa" porque o processo é interrompido quando eu paro o aplicativo. Mas eu não entendo a lógica deles, por que não parar o processo?

Quais vantagens o Ending Task tem sobre Ending Process ?

    
por Pacerier 30.01.2012 / 09:44

4 respostas

13

Para programas com pelo menos uma janela, Finalizar tarefa faz o mesmo que clicar no botão X "Fechar" - envia a mensagem WM_CLOSE para aquela janela, pedindo muito para fechar. (Nas janelas do console, o equivalente é CTRL_CLOSE_EVENT .) O programa pode solicitar ao usuário para salvar as alterações ou fazer várias tarefas de limpeza. Se o processo estiver em conformidade, o Gerenciador de Tarefas aguardará alguns segundos e continuará encerrando o processo se ainda estiver em execução.

Se o processo estiver congelado ou não estiver lidando com mensagens de janela recebidas, é claro que nem Finalizar tarefa nem o botão Fechar podem funcionar. Nesses casos, o Windows normalmente pedirá que você encerre o programa com vigor, mas somente após dar ao programa tempo suficiente para responder.

Enquanto isso, o botão Encerrar processo não se preocupa com tarefas ou janelas - ele chama a função TerminateProcess() e o Windows destrói o processo imediatamente, sem notificá-lo ou dando-lhe qualquer chance de limpar .

(Recursos como memória são liberados automaticamente depois que o processo é eliminado; no entanto, podem existir vários arquivos temporários se o programa os criar e, claro, há o risco de corrupção de dados se o processo for encerrado no meio de salvar dados.)

Veja também:

por 30.01.2012 / 14:01
2

As outras duas respostas fazem um bom trabalho de explicar qual é a diferença em termos de o que acontece, mas apenas para mostrar como elas diferem em termos de como acontece, o primeiro diz ao programa para fechar enquanto o último diz ao Windows para matar o programa.

Como uma analogia, é como a diferença entre pedir a alguém para reunir suas coisas e sair da sala e dizer a um segurança para empurrá-las imediatamente e à força.

    
por 27.04.2012 / 06:54
1

Para elaborar: Finalizar tarefa tentará fechar o aplicativo normalmente. Se estiver suspenso, você terá a opção de "terminar agora". Isso lhe dá dois benefícios ao matar o processo (que apenas a força bruta apaga):

  1. permite a recuperação de falhas em aplicativos registrados no Windows Vista (e superior) breve descrição do MSDN
  2. permite enviar um relatório de erros
por 27.04.2012 / 06:27
-7

É apenas uma discrepância na terminologia. Provavelmente o serviço de helpdesk da Microsoft na costa oeste é uma tarefa, enquanto a costa leste usa um processo tecnicamente correto.

Tecnicamente, ainda encerra o processo. Tarefa é provavelmente um invólucro de processo mostrando uma janela? A ajuda do gerenciador de tarefas também não define.

    
por 30.01.2012 / 10:53