As diferenças entre as formas de fechar um aplicativo do Windows em execução

7

Do ponto de vista do sistema operacional - desalocação de memória, thread, etc. - há alguma diferença entre as 4 maneiras (posso pensar) de fechar um aplicativo em execução?

1. Vermelho 'X'

2.Arquivoesaída

3. Alt + F4

4.Barradetarefas-Fecharjanela

    
por Paddy 22.11.2013 / 11:02

1 resposta

13

Neste caso específico, não, não há.

Todas as abordagens provavelmente postam uma mensagem WM_QUIT para o aplicativo em si. Ele então manipulará a mensagem limpando todos os recursos e saindo.

No entanto, em teoria, pode ser uma diferença. O menu Arquivo está completamente sob o controle do aplicativo. Quais itens aparecem nele e o que acontece se esses itens forem invocados é específico do aplicativo. O autor do aplicativo pode executar código completamente diferente ao clicar em Sair no menu Arquivo do que aquele que é executado quando você usa Alt + < kbd> F4 .

Ainda mais teoricamente, o desenvolvedor pode sobrescrever o comportamento de teclas aceleradoras como Alt + F4 e executar um código diferente do que seria executado quando você pressiona o X vermelho. / p>

Alterar o comportamento de um aplicativo para que ele não cumpra o comportamento padrão do Windows e as expectativas do usuário, no que diz respeito ao fechamento de aplicativos, é estamente desencorajado . Mas, então, está colocando automaticamente atalhos para aplicativos na área de trabalho ...

Enquanto Alt + F4 , o X vermelho e a entrada do menu na janela da lista de atalhos provavelmente são idênticos, pois eles postam a mesma mensagem, são outras formas de sair de uma aplicação, como forçando um processo a sair . Isso geralmente deve ser evitado, a menos que o aplicativo não esteja mais respondendo.

Contanto que você possa sair de uma aplicação graciosamente, fechando a janela associada, você deve fazer isso, porque ela permite que o aplicativo pare o que está fazendo, possivelmente termine de gravar e fechar arquivos abertos e persista seu estado atual. Quando você forçará o encerramento de um aplicativo, ele não terá a chance de fazer isso. Você está basicamente dizendo diretamente ao sistema operacional para limpar o processo (em vez de deixar o processo se limpar sozinho). Mas o processo em si sabe muito melhor como se limpar adequadamente.

O Gerenciador de tarefas forçará o encerramento do processo se você selecionar Encerrar processo na guia Processos . Se você usar Finalizar tarefa na seção Aplicativos , ele publicará a mensagem WM_QUIT na janela do aplicativo selecionada.

    
por 22.11.2013 / 11:13

Tags