2010-09-17 7 views
3

J'ai un programme C# Forms avec environ 200 contrôles au total. Certains sont dans les contrôles utilisateur que j'ai ajoutés au formulaire. Quand j'ai exécuté mon programme sur ma machine à la maison, un dual core AMD X64, 2.0Ghz avec une carte ATI X1600, le programme fonctionne bien. C'est rapide et redessiner n'est pas un problème. Lorsque j'ai mis ce programme sur mon ordinateur de bureau, un processeur quadricœur Intel 2.4Ghz, 4Go de RAM et un NVidia Gefore 8800GT, il a ralenti à l'analyse lors du redessin. Cela pourrait-il être un problème de pilote?C# contrôle personnalisé redraw lent

J'ai la double mise en mémoire tampon activée pour tous mes contrôles et formulaires utilisateur. Aucune aide là-bas.

J'ai lu ce fil, mais ma situation est pas la même: Super slow C# custom control

+0

Je dois dire que les commandes utilisateur ont un rafraîchissement plus rapide en mode conception que lors de l'exécution. En outre, sur ma machine AMD avec la carte ATI, le formulaire s'affiche presque instantanément alors que sur la machine NVidia le formulaire prend environ 10 secondes à dessiner. – MarkP

+1

Avez-vous veillé à ce que tous les pilotes soient à jour? – asawyer

+0

Avec ces chiffres, il doit s'agir d'un problème de pilote. Vous pouvez confirmer avec une petite application que fois le dessin de 100000 lignes ou quelque chose. –

Répondre

0

la chose est ".SuspendLayout();" n'est pas vraiment arrêter de dessiner. Je ne me souviens pas de la déclaration mais je crois que vous pouvez l'obtenir sur google. et essayez d'utiliser .AddRange pourrait aider.

0

Il est important de noter que les contrôles de dessin sont comme la peinture sur une surface 2D, se chevauchant selon les besoins. Si le contrôle ne comprend pas des éléments tels que l'écrêtage rectangle, il peut dessiner une partie du contrôle qui n'est pas visible (en particulier les contrôles cachés dans un autre conteneur, comme un TabPage), gaspillant de précieux cycles CPU. En outre, les contrôles dont le BackColor est transparent tenteront d'imiter la transparence en adoptant le BackColor de son contrôle parent. Puisque tout cela se produit sur GDI +, qui n'est pas accéléré par le matériel, le fait d'avoir de nombreux contrôles qui présentent ce comportement va exacerber le ralentissement.