IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] à quoi servent les Invoke


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut [C#] à quoi servent les Invoke
    Bonjour à tous !!

    ca faisait un moment que je n'avais pas eu de problèmes mais finalement ca reviens
    alors c'est à propos du Invoke. Un collègue m'a filé un code que je dois reprendre et modifier à ma sauce pour mon application et il y a une partie du code qui reste obscure pour moi même si elle n'est pas capitale.
    Voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            private void logstr(string text)
            {
                if (this.log.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(logstr);
                    this.Invoke(d, new object[] { text });
                }
                else
                {
                    this.log.Items.Insert(0, text);                    
                }
            }
    Bon alors le SetTextCallBack c'est un delegate donc même si je ne maitrise pas je sais à peu près ou chercher par contre je n'ai jamais entendu parler du invoke et j'aimerais donc connaitre son utilité dans ce genre de code

    merci d'avance pour vos réponses

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Bonjour,

    Invoke est utilisé lorsque l'on souhaite utilisé une propriété d'un controle Windows (toute classe dérivant de la class Control) et que l'on ne se trouve pas dans le thread qui a crée celui çi.
    Dans ce cas la propriété InvokeRequired vaut true)

  3. #3
    Membre régulier Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    donc si je comprend bien dans mon cas la, quand c'est le programme principal qui appelle la methode logstr() il envoit un evênement et quand c'est un thread qui l'appelle il écrit simplement dans le log?

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par legillou
    donc si je comprend bien dans mon cas la, quand c'est le programme principal qui appelle la methode logstr() il envoit un evênement
    Oui il utilise directement le controle listbox (je suppose) logs

    Citation Envoyé par legillou
    et quand c'est un thread qui l'appelle il écrit simplement dans le log?
    Au final il envoie aussi un evenement comme tu dis. La fonction aussi logstr est appellée en fin de compte.
    Il ne l'appelle pas toute fois directement, il passe par Invoke.
    Invoke fais en sorte d'appeller la fonction du delegate qu'on lui passe en paramètre dans le thread qui a créeé le controle.

Discussions similaires

  1. à quoi servent les .dsm ?
    Par fidji dans le forum Delphi
    Réponses: 4
    Dernier message: 14/06/2006, 19h37
  2. [MySQL] A quoi servent les réferences entre les tables??
    Par Alain15 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/02/2006, 16h19
  3. A quoi servent les index dans une BDD ?
    Par Melvine dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 25/10/2005, 12h14
  4. [CR 10] A quoi servent les Templates Fields ?
    Par caviar dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 10/11/2004, 10h52
  5. [C#] A quoi servent les interfaces???
    Par sof_nns dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/10/2004, 20h51

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