PROCESSO NAO FINALIZA NO WINDOWS

FBGSYSTEMS 28/05/2015 11:02:56
#447121
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 ?
OCELOT 28/05/2015 11:39:43
#447122
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.
MESTRE 28/05/2015 12:49:38
#447125
Resposta escolhida
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..
JOAOBENEVIDES 28/05/2015 13:08:24
#447126
Ola Caro amigo mestre voce poderia passar o gato que voce fez meu sistema esta assim tambem , obrigado
FBGSYSTEMS 28/05/2015 14:20:38
#447130
Galera eu estava fechando meu sistema assim:

 Application.Exit();  


Troquei para isso e vou ver o que acontece:

 Environment.Exit(0);  
MESTRE 28/05/2015 16:57:40
#447140
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
NILSONTRES 28/05/2015 17:42:04
#447143
Tem que dar um [Ô]me.dispose[Ô] e depois um [Ô]end[Ô]
KERPLUNK 28/05/2015 19:31:35
#447150
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.
MESTRE 28/05/2015 20:55:13
#447152
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[Ô]..
KERPLUNK 29/05/2015 02:46:45
#447156
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
FBGSYSTEMS 29/05/2015 09:44:43
#447162
Entao sempre que eu chamar um form eu devo dar um dispose nele ?

Ficaria assim?
frmCadastro cad = new frmcadastro()
cad.showdialog();
cad.dispose;

??
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas