Quais vantagens o Finalizar Tarefa tem sobre o Finalizar o Processo?

Quais vantagens o Finalizar Tarefa tem sobre o Finalizar o Processo?

Pelo que sei, sempre que quisermos interromper um aplicativo (ou um aplicativo congelado), iremos ao TaskManager, selecionaremos o aplicativo Go to Processe encerraremos o processo. "Finalizar processo" é preferível a "Finalizar tarefa" (às vezes "finalizar tarefa" não funciona de qualquer maneira).

Imagem para tarefa final:

insira a descrição da imagem aqui

Imagem para processo final:

insira a descrição da imagem aqui

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

Ao examinar os processos, observe que embora os aplicativos tenham um processo principal, um único aplicativo pode iniciar vários processos. Geralmente, esses processos dependem do processo principal do aplicativo e são interrompidos quando você encerra o processo principal do aplicativo ou usa Finalizar tarefa. Por causa disso, geralmente você desejará encerrar o processo principal do aplicativo ou o próprio aplicativo, em vez dos processos dependentes.

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 simplesmente interromper o processo?

Que vantagens Ending Tasktem Ending Process?

Responder1

Para programas com pelo menos uma janela,Finalizar tarefafaz o mesmo que clicar no Xbotão “Fechar” – ele envia a WM_CLOSEmensagem para aquela janela, pedindo gentilmente para fechar. (Para janelas de console, o equivalente éCTRL_CLOSE_EVENT.) O programa pode solicitar que o usuário salve as alterações ou execute várias tarefas de limpeza. Se o processo estiver em conformidade, o Gerenciador de Tarefas aguarda alguns segundos e prossegue com o encerramento do processo, se ainda estiver em execução.

Se o processo estiver congelado ou não estiver lidando com as mensagens de janela recebidas, então, é claro, nenhum dos doisFinalizar tarefanem o botão Fechar pode funcionar. Nesses casos, o Windows geralmente solicitará que você encerre o programa à força, mas somente depois de dar ao programa tempo suficiente para responder.

Enquanto isso, oFim do processoO botão não se preocupa com tarefas ou janelas – ele chama a TerminateProcess()função e o Windows destrói o processo imediatamente, sem notificá-lo ou dar qualquer chance de limpeza.

(Recursos como memória são liberados automaticamente quando o processo termina; no entanto, podem permanecer vários arquivos temporários se o programa os criou e, claro, há o risco de corrupção de dados se o processo for encerrado no meio do salvamento dos dados.)

Veja também:

Responder2

As outras duas respostas explicam bem qual é a diferença em termos deo queacontece, mas apenas para colocar em perspectiva como eles diferem em termos decomoisso acontece, o primeiro diz ao programa para fechar enquanto o último diz ao Windows paramataro programa.

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

Responder3

Para elaborar: End Task tentará fechar o aplicativo normalmente. Se estiver travado, você terá a opção de “terminar agora”. Isso oferece dois benefícios em relação à eliminação do processo (que apenas a força bruta o elimina):

  1. permite a recuperação de falhas para aplicativos registrados no Windows Vista (e superior)Breve descrição do MSDN
  2. permite enviar um relatório de erro

Responder4

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

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

informação relacionada