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

Vista: 21695|Resposta: 1

[Fonte] .net/c# Cuidado com eventos que prejudicam seu programa

[Copiar link]
Publicado em 21/09/2016 16:05:58 | | | |
Os eventos são carregados e executados na thread principal, e se o primeiro evento na thread principal não for concluído, você chega ao segundo evento, assim como outros programas na thread principal, espera que o anterior termine o processamento antes de processar o próximo ou outro programa ou evento na thread principal.




O que foi dito acima é: eu mesmo encapsulei um objeto, e no objeto, eu mesmo encapsulei um evento.

Eu processo dados no método de assinatura de eventos, como a parte da anotação de imagens,

Porque o evento ao qual me assinei era um arquivo txt de leitura, e meu arquivo txt tinha 50.000 linhas, fazendo com que o método do evento fosse acionado 50.000 vezes.

Então, quando executei o programa, percebi que minha interface estava em estado de animação suspensa, e soube que devia haver um problema ali.

Inicialmente achei que era a manipulação dos controles da interface no método que causava a morte falsa.

Depois, passo a passo, descobriu-se que, ao adicionar dados ao conjunto, ele já havia entrado em um estado de animação suspensa.

Por quê??? Finalmente, descobri pela internet que o evento está no tópico principal e, se o primeiro evento não for processado, ele bloqueará a execução do próximo evento,

Eu geralmente entendia o que ordenava, para ser franco, 50.000 eventos fizeram o programa ser bloqueado, e então entrei em um estado de animação suspensa.

Solução:

Para alguns eventos simples, que não levarão à execução de um grande número de métodos de eventos, podem ser escritos diretamente no método de eventos.

Para um grande número de métodos de eventos chamados, espero que você abra uma thread para lidar com isso, como: socket ou httplistener, etc. (a quantidade de dados é pequena e você não consegue vê-la, quando a quantidade de dados é grande, haha, ela morrerá diretamente)




Anterior:C# gera códigos de endereço de e-mail em massa
Próximo:Análise de jogadores de transmissão na nuvem, análise de interfaces Thunderbolt e QQ whirlwind
Publicado em 22/09/2016 09:23:17 |
Alguém postou muito bem, suporte
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