Interceptando aplicação próximo em c #
-
03-07-2019 - |
Pergunta
Eu gostaria de fechar corretamente algumas bases, e ser capaz de dizer ao servidor que está fechando, mas se o aplicativo for fechado, em seguida, as tomadas são apenas fechadas e em arquivos ocasião são deixados bloqueado. Como posso executar um método quando o aplicativo é fechado?
Este vai entrar em uma biblioteca que será usado em um aplicativo de formulários.
Solução
Gostaria de implementar IDisposable sobre as classes que o uso esses recursos. Descarte pode então ser chamado explicitamente a partir método de qualquer desligamento do tipo de aplicação suportes (OnFormClose, OnStop, Application_End, ...).
Outras dicas
Se a aplicação é um Windows Forms que você pode dar o foco para o formulário, clique no parafuso de eventos relâmpago na janela de propriedades, e usar o evento Formulário de Encerramento.
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(OnFormClosing);
private void OnFormClosing(object sender, FormClosingEventArgs e)
{
// Your socket logic here
}
Além disso, se você precisa para interceptar o ser de forma fechada definir a propriedade Cancel como true:
e.Cancel = true;
Você está falando de um aplicativo WinForms? Se assim for, utilize o FormClosing evento em seu formulário principal.
Eu não tenho certeza se é o melhor lugar para isso, mas você pode dizer ao seu processo está fechando enganchando AppDomain.ProcessExit . É bom para a limpeza, mas eu não acho que é um bom momento para ser o envio de quaisquer mensagens fora. :)