Discussion: code click bouton

  1. #1

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : octobre 2012
    Messages : 7
    Points : -1
    Points
    -1

    Par défaut code click bouton

    Bonjour,

    j'ai ce click bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void button1_Click(object sender, EventArgs e)
    {
        Client[] clients;
        clients = this.GetClients();
     
        for (int i = 0; i < clients.Length; i++)
        {
            clients[i].ChiffreAffaire = 0;
        }
    }
    A l’exécution, mon tableau contient 10 000 clients, l’affichage est gelé pendant plusieurs secondes !

    Je cherche à faire une optimisation afin d'alléger le traitement pour le compilateur ?

    Je ne sais pas comment

    SI vous avez la moindre idée, je suis preneur !

    Merci par avance

    Cdt,

    HAKOUN

  2. #2
    Expert Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 990
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 990
    Points : 7 760
    Points
    7 760

    Par défaut

    Bonjour,

    Faire 10 000 affectations devrait être instantané.

    Mets une instruction MessageBox.Show("xx") après this.GetClients() pour déterminer si (1) c'est GetClients ou si (2) la boucle qui prend sur temps.

    • si (1), que fait exactement la fonction GetClients() ?
    • si (2), est-ce que clients est "bindé", c'est à dire utilisé comme DataSource d'un control ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 670
    Points : 2 717
    Points
    2 717

    Par défaut

    Pour les traitements longs, il y a le BackgroundWorker qui permet de ne pas "freezer" l'interface utilisateur : http://msdn.microsoft.com/fr-fr/libr...ckgroundworker puisque le traitement est effectué dans un thread séparé.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo