
Pelo que sei, sempre que quisermos interromper um aplicativo (ou um aplicativo congelado), iremos ao TaskManager, selecionaremos o aplicativo Go to Process
e encerraremos o processo. "Finalizar processo" é preferível a "Finalizar tarefa" (às vezes "finalizar tarefa" não funciona de qualquer maneira).
Imagem para tarefa final:
Imagem para processo final:
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 Task
tem Ending Process
?
Responder1
Para programas com pelo menos uma janela,Finalizar tarefafaz o mesmo que clicar no Xbotão “Fechar” – ele envia a WM_CLOSE
mensagem 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:
- Revista Visual Studio.Mate um aplicativo com cuidado
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):
- permite a recuperação de falhas para aplicativos registrados no Windows Vista (e superior)Breve descrição do MSDN
- 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.