PROCESSO NAO FINALIZA NO WINDOWS
Bom dia galera.
Quando meu sistema fecha, o processo do windows nao encerra junto.
O que faz com que eu nao consiga atualizar o .exe e tambem quando eu atualizo, o cliente abre de novo o sistema, e aparece que abre no processo anterior..ai minha atualização não funciona.
Como faço pra resolver isso ?
Quando meu sistema fecha, o processo do windows nao encerra junto.
O que faz com que eu nao consiga atualizar o .exe e tambem quando eu atualizo, o cliente abre de novo o sistema, e aparece que abre no processo anterior..ai minha atualização não funciona.
Como faço pra resolver isso ?
Você tem que descobrir o que causa isso, não tem como a gente adivinhar, no geral quando o formulário principal é fechado o programa finaliza, porém se estiver por exemplo usando threads pode ser que exista alguma que ainda está rodando e que está impedindo o programa de fechar.
Cara estou sofrendo o mesmo problema, ele fica com vários processos do meu sistema em aberto, pra resolver eu fiz um gato, no executavel que eu utilizo para atualizar tem um For Each que mata todos os processos.. queria saber resolver este problema também..
Ola Caro amigo mestre voce poderia passar o gato que voce fez meu sistema esta assim tambem , obrigado
Galera eu estava fechando meu sistema assim:
Troquei para isso e vou ver o que acontece:
Application.Exit();
Troquei para isso e vou ver o que acontece:
Environment.Exit(0);
Citação:Ola Caro amigo mestre voce poderia passar o gato que voce fez meu sistema esta assim tambem , obrigado
Opa ta na mão.
For Each prog As Process In Process.GetProcesses
If prog.ProcessName = [Ô]NomeDoProcesso[Ô] Then
prog.Kill()
End If
Next
Tem que dar um [Ô]me.dispose[Ô] e depois um [Ô]end[Ô]
Essa é uma excelente oportunidade para falar sobre boas práticas. O processo continuar ativo no windows, é caracterÃstica muito comum de algum objeto não despejado corretamente. Essa é uma das razões que reforço para que se use blocos using ao se instanciar qualquer objeto. Qualquer objeto que tenha sido instanciado, seja uma connection, datareader, classe, enfim qualquer coisa, caracteriza para o windows que sua aplicação ainda está em uso e por isso que o windows não a encerra. é possÃvel se fazer algumas alterações no GAC para encerrar a aplicação de forma forçosa, mas isso não é recomendável.
Citação:Essa é uma excelente oportunidade para falar sobre boas práticas. O processo continuar ativo no windows, é caracterÃstica muito comum de algum objeto não despejado corretamente. Essa é uma das razões que reforço para que se use blocos using ao se instanciar qualquer objeto. Qualquer objeto que tenha sido instanciado, seja uma connection, datareader, classe, enfim qualquer coisa, caracteriza para o windows que sua aplicação ainda está em uso e por isso que o windows não a encerra. é possÃvel se fazer algumas alterações no GAC para encerrar a aplicação de forma forçosa, mas isso não é recomendável.
Engraçado Kerplunk pq com conexão em banco, datareader etc.. eu sou um cara super chato sempre fecho tudo que é conexão.. sem contar que se eu não fecho toda hora me trás aquela mensagem legal [Ô]The connection is alredy open[Ô]..
Foram só exemplos, qualquer coisa instanciada pode ficar ativa, não só conexões e datareaders. Além de fechar, também é necessário fazer o dispose do objeto
Entao sempre que eu chamar um form eu devo dar um dispose nele ?
Ficaria assim?
frmCadastro cad = new frmcadastro()
cad.showdialog();
cad.dispose;
??
Ficaria assim?
frmCadastro cad = new frmcadastro()
cad.showdialog();
cad.dispose;
??
Tópico encerrado , respostas não são mais permitidas