+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

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 :
    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 840
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 840
    Points : 7 550
    Points
    7 550

    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 Pascal
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 649
    Détails du profil
    Informations personnelles :
    Nom : Homme Pascal
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 649
    Points : 2 693
    Points
    2 693

    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é.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •