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

C# Discussion :

[C#3] Threads et delegates.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut [C#3] Threads et delegates.
    Bonjour,

    J'ai actuellement un gros soucis.

    Je suis en C# 3.0 et je dois créer un threads.

    J'ai donc ma fenetre et mon second thread doit faire des routines.

    J'ai donc crée comme dans l'exemple de la FAQ une fonction avec un délégué. Seulement si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monListBox.invoke(..) ca n'éxiste plus :(
    Est ce que quelqu'un a déja rencontré ce soucis.

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    soit plus explicite. Qu'est ce qui n'existe plus ? Quel est le probleme (Exception ? Rien ne se passe ?)

    Si on peut avoir un code compilable aussi. =)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    J'ai un listbox nommé maListbox. et j'aimerais bien invoker dessus mon delegate.

    mais maListox.Invoke() est introuvable dans l'explorateur d'objets. Et je souhaiterai savoir quelle était la nouvelle méthode pour invoker des délégué.

    Merci.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Je ne vois pas pourquoi cela ne marcherais pas

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    Voici mon code.

    J'ai une fonction de chargement()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void chargement()
    {
      foreach(..)
      {
        //APPEL DU DELEGUE
        this._listBoxInfo.Invoke(new ListBoxInvokeHandler(createListBoxItem("Chargement du dossier commun", "Green", "Normal", true)));
      }
    }
    un délégué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private delegate void ListBoxInvokeHandler(String unMessage, String uneCouleur, String unFontWeight, System.Nullable<Boolean> unTypeCocher);
    une fonction de creation du listboxItem.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       ListBoxItem maListBoxItem = new ListBoxItem();
       (...)
       this._listBoxInfo.Items.Add(maListBoxItem);
    Démarrage du thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    //chargement();
                monThreadStart = new ThreadStart(chargement);
                this._monThread = new Thread(monThreadStart);
     
                this._monThread.Start();
    Quand je compile, il me balance cette erreur:

    'System.Windows.Controls.ListBox' does not contain a definition for 'Invoke' and no extension method 'Invoke' accepting a first argument of type 'System.Windows.Controls.ListBox' could be found (are you missing a using directive or an assembly reference?)

    Voici pourquoi je demande s'il existe pas une autre facon d'appeler un délégué dans mon thread.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Vu le namespace, tu parles apparemment de WPF, donc je suppose qu'il faut récupérer le dispatcher de la listbox et faire l'invoke dessus.

    NB : ceci est hautement hypothétique, WPF et moi, ça fait 8. =p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. question sur choix evènement, thread et delegate
    Par kineton dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/02/2010, 14h24
  2. Croisements de threads / Fonctionnement des "delegate"
    Par Fabllot dans le forum C++/CLI
    Réponses: 3
    Dernier message: 18/07/2007, 12h18
  3. [C#][Thread][Invoke] petit problème de delegate
    Par clinic dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 22/06/2007, 11h38
  4. [C# 2.0][Form]Comment utiliser les Delegates & Threading
    Par Tips dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/01/2006, 14h22
  5. [C#]Thread, event/delegate et Form
    Par doccpu dans le forum Windows Forms
    Réponses: 28
    Dernier message: 01/08/2005, 18h35

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