C #

Application classique C #.DoEvents ()

C Classic Application



Récemment, j'ai créé un système de gestion de bibliothèque numérique personnelle. Comme il s'agit de l'analyse de fichiers informatiques, je souhaite afficher en temps réel les fichiers analysés en cours, ce qui est similaire à l'effet de l'analyse de fichiers 360. J'avais initialement prévu d'utiliser plusieurs threads pour y parvenir, mais trop de méthodes n'ont pas été implémentées. Plus tard, je l'ai contrôlé dans le programme. En raison d'un trop grand nombre de fichiers, le phénomène d'animation suspendue est apparu. Même la minuterie définie par moi-même semblait suspendue. Par conséquent, ce problème doit être résolu. Puis, en étant ici, j'ai soudainement trouvé Application.DoEvents (), je l'ai utilisé, je suis bien tombé amoureux et j'ai résolu le problème que j'ai rencontré. Cet article présente principalement la méthode Application.DoEvents ().

Je me souviens que la première fois que j'ai utilisé Application.DoEvents (), c'était pour avoir un rappel de chargement de données lors du chargement d'une grande quantité de données, afin d'éviter que le système n'apparaisse dans le phénomène d'animation suspendue. À cette époque, je n’ai pas étudié le principe en profondeur. Les résultats sont nombreux Application.DoEvents () est utilisé partout. J'ai vu des articles sur cet aspect aujourd'hui. Je sais que certaines de mes utilisations précédentes étaient incorrectes, et dans certains endroits, je dois utiliser Application.DoEvents () avec prudence.
Tout d'abord, jetons un coup d'œil au programme avec une boucle relativement grande. Son effet est toujours bon, et il a un effet de réponse en temps réel, par exemple:



pour (int q = 0 q<1000000 q++)
{
textBox1.Text = q.ToString ()
Application.DoEvents () // Réponse en temps réel à la valeur dans la zone de texte
}



Si DoEvents n'est pas ajouté, le temps de cycle sera plus long, il y aura un état d'animation interrompue et le programme ne pourra pas gérer d'autres événements. Et si DoEvents est ajouté, il répondra à la valeur de la zone de texte en temps réel, apportant une meilleure expérience utilisateur à l'utilisateur, mais DoEvents apporte également des problèmes d'efficacité, traitant le même événement après avoir appelé DoEvents, l'efficacité est réduite de plusieurs Fois, c'est pourquoi vous devez l'utiliser avec prudence.



C # Application.DoEvents ()