/ / Por que o WinForms falha na pintura ocasionalmente? - c #, winforms

Por que o WinForms não consegue pintar de vez em quando? - c #, winforms

Sou responsável por apoiar um winformsaplicativo e, ocasionalmente, o aplicativo não será pintado corretamente. Às vezes, as atualizações numéricas ficam cinzas (a cor de controle padrão), mas elas ainda funcionam. Outras vezes, certos botões não serão pintados corretamente.

Nós não escrevemos nenhum código de pintura personalizado, sem GDI +, nada. Portanto, AFAIK, tudo deve ser tratado pelo Windows.

O problema é que os ingressos chegam com fotos de partes do aplicativo que não foram renderizadas corretamente e eu nem sei como começar a depurá-las, porque não tenho idéia do que pode estar errado.

Então, a pergunta é: por que o WinForms falha em pintar algumas vezes? Há certas coisas que devo procurar?

Respostas:

4 para resposta № 1

No Winforms, a interface do usuário e a lógica são normalmente executadas no mesmo segmento.

Portanto, quando você bloqueia o thread da interface do usuário consultando um banco de dados, a leitura de um arquivo ou o que leva mais tempo do que pode passar despercebido, a interface do usuário não será atualizada nesse período.

Outro motivo pode ser o fato de o thread simplesmente não ter tempo de execução, porque um outro thread tem uma prioridade mais alta e tempo na CPU.


0 para resposta № 2

Além do que Erno disse, eu acrescentariaque tive alguns problemas estranhos quando um dos aplicativos winforms em que eu estava trabalhando usava uma cor de transparência para algumas imagens comuns em meus controles. Se seu aplicativo estiver usando imagens e você tiver definido uma cor de transparência que seus botões ou controles estão usando, coisas estranhas acontecerão.