fantasio36
Messages postés21Date d'inscriptionmercredi 30 juillet 2008StatutMembreDernière intervention 3 octobre 2011
-
24 oct. 2008 à 09:25
fantasio36
Messages postés21Date d'inscriptionmercredi 30 juillet 2008StatutMembreDernière intervention 3 octobre 2011
-
24 oct. 2008 à 11:49
Salut les rois du C#,
J'ai un petit probleme de rafraichissement pour une fenetre text qui contient pas mal de donnees...En fait environ plusieurs centaines de lignes pour etre exact. Le probleme est que lorsque je rafraichi ma fenetre text, mon application se bloque certain temps pour le traitement de cette tache! Je suis equippe d'un AMD dual core assez recent, et je ne comprends pas pourquoi ca rame autant!! Quelqu'un a t il une idee de ce qui pourrait aider a ameliorer les performances d'affichage?
En fait j'ai deja procede a une petite modification qui m'a permis d'ameliorer (un peu) la vitesse de rafraichissment: je passe par un string tampon que j'ecris avec les data, puis je raffraichi ma textbox en recopiant le tampon. (textbox.text = tampon). Mais ca rame toujours beaucoup si j'ai beaucoup de donnees a afficher. Faut-il passer par un richtextbox? Ou bien y'a t il moyen d'augmenter la priorite de cette tache?
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 24 oct. 2008 à 10:59
Oui, c'est exacement ca.
En faisant comme tu procédes, tu utilises le Thread principal, qui est aussi celui dans lequel s'execute l'UI. Avec un autre Thread, les taches de l'UI et les taches de ton traitement s'effectueraient en parallele.
Tu peux aussi utiliser le BackgroundWorker, qui est là pour faciliter l'utilisation des threads pour ce genre de cas.
Il y a plusieurs sources a ce sujet sur Csharpfr. Par exemple :
http://www.csharpfr.com/codes/THREAD-PROGRESSBAR-EXEMPLE-SIMPLE_40294.aspx pour les thread
http://www.csharpfr.com/codes/BACKGROUNDWORKER_44725.aspx pour le BackgroundWorker
Il y en a bien d'autres, a toi de voir celles qui t'améneront a mieux comprendre le principe :)
fantasio36
Messages postés21Date d'inscriptionmercredi 30 juillet 2008StatutMembreDernière intervention 3 octobre 2011 24 oct. 2008 à 10:12
Salut, je n'ai pas essaye (je suis un peu nouveau en C# et je t'avoue que je decouvre...). Le temps d'execution serait le meme mais ca debloquerait mon ecran gele, c'est ca? Est ce que tu parles d'un backgroundworker? Est ce possible d'accelerer la vitesse de rafraichissement? (il me faut 30 secondes pour voir apparaitre les donnees...)
Merci