Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 20162|Resposta: 0

[Fonte] {"Não é possível acessar um objeto descartado.\r\nNome do objeto: 'Form1'."}.

[Copiar link]
Publicado em 12/06/2016 16:28:41 | | | |

Como evitar exceções ao fechar um formulário ao chamar um controle entre threads não podem acessar objetos descartados.
Ao chamar um formulário entre threads em uma thread, e ao usar invoke para atribuir valores ou alterar propriedades aos controles do formulário, se a thread não for terminada antes do fechamento do formulário, uma exceção como essa sempre aparecerá: não pode acessar um objeto descartado.
O motivo deve ser que, quando o controle de formulário é chamado na thread, o formulário já foi logado, então ele sai de todas as threads antes que o formulário seja desconectado. Para resolver esse problema, você pode adicionar o seguinte código:


Não vai mais aparecer a exceção.
Chamar system.environment.exit(0) pode sair completamente do programa, não importa qual thread seja forçado a encerrar, encerrando o programa de forma muito limpa.



Evento de encerramento FormS

Quando o formulário é fechado, ocorre o evento FormCloser. Este evento é resolvido. Isso libera todos os recursos relacionados ao formulário.

Se você cancelar este evento, o formulário permanece aberto.

Quando o formulário aparece como um diálogo de modo, clicar em Fechar oculta o formulário e define a propriedade ResultaDiálogo como Cancelar. Ao definir a propriedade ResultadoDiálogo em alguns eventos, o valor do ResultadoDiálogo pode ser sobrescrito quando o usuário clica no botão de fechar no canto superior direito.

Evento FormClosed

Um evento FormClosed ocorre após o método Fechar ou Sair da classe usuário ou Application fechar o formulário.

Você pode usar este evento para liberar alguns dos recursos do formulário. Você também pode usar esse evento para salvar algumas informações no formulário de entrada ou para atualizar o formulário pai.





Anterior:C#/Winform versão 12306 login, você pode clicar manualmente no código de verificação da imagem
Próximo:Soquete C# para obter o endereço IP e a porta do cliente
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com