Galera, meu sistema está travando depois que eu abro e fecho algumas telas.
Da o erro: "Error creating window handle". "erro ao criar identificador de janela" e trava todo o sistema, não consigo abrir mais nenhuma tela.
O sistema é um ERP.
No meu computador e computadores mais forte, abro e fecho umas 50 vezes pra dar esse erro, mas em uma máquina com 1 giga de ram, mais fraquinha, na décima vez mais ou menos acontece o erro, cliente ta ficando doido comigo, rs..
Já tentei de tudo, tentei nas telas pais, filhas, quando da closed, fazer um for nos controls dando um dispose, colocando null nas variáveis, chamando o GC.Collect, etc, etc, fiz várias tentativas e nada.
Toda vez que eu abro e fecho uma tela, e acompanho no gerenciador de tarefas, ele aumenta os "objects user" aumenta uns 30 quando eu abro a tela e depois que fecho, diminui uns 25, sempre sobra uns 5, 10...
Memória também, só vai aumentando.
Baixei um programa para liberar memória, liberou, mas também não adiantou, logo da o erro... Então creio que o problema não seja exatamente a memória.
--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo ".Net Architects" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para dotnetarchitec...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Renan Henrique
Analista Desenvolvedor .Net/SQL
MCTS - Microsoft Certified Technology Specialist
GTalk - MSN: rena...@gmail.com
Está com cara de vazamento de handles isso aí.
Sai criando janelas, componentes, etc e não está matando as instâncias ou seu código não libera handles alocados.
Possiveis causas: uso de componentes de terceiros mal escritos ou código com p/invoke não liberando handles.
--
Ligue o task manager, ou outro aplicativo de monitorar processos e acompanhe conforme vai operando sua aplicação o número de handles (traduzido no Windows portugues como manipuladores se não me engano).
Se o número só cresce, mesmo quando você fecha janelas, está " vazando" handles.
O duro é que quase tudo no windows é um handle. Botão, janela, socket, mutex, arquivos.
Por isso é legal ter linguagem gerenciada. Os desenvolvedores pensam que recurso de máquina é infinito.
Depois dá uma olhada com carinho no comportamento da interface IDisposable no .Net. tem um post no meu blog que explica o que é e como funciona (também em relação ao GC).
Entendendo essas coisas direitinho vc provavelmente chegará à solução do seu problema.
Abraços
Eric
Da olhada neste link tem bastante informação e pode te dar um norte para o que fazer.
http://msdn.microsoft.com/pt-br/magazine/cc163528.aspx
Você disse que pelo task do Windows da para perceber a memória presa quando fecha o form.
Faça um teste com ''GC.WaitForPendingFinalizers();''Willian Lima
Analista de Sistemas
11 9 6148 6770
Sent from my device