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++ .NET] Cross Threading, ListBox


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 62
    Points : 38
    Points
    38
    Par défaut [C++ .NET] Cross Threading, ListBox
    Bonjour,

    je viens vous demander de l'aide pour fonctionner un bout de code.
    Mon probleme c'est que je voudrais faire des ajouts dans une ListBox et comme en C++ .NET le cross threading est interdit. Donc seule solution : passer par un delegate. Mais toutefois, je ne comprends pas le fonctionnement des delegates et thread ensemble.

    Voici le code Exemple : (reprise de la FAQ sur les delegate)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		delegate void ListBoxDelegateHandler();
    	    ListBoxDelegateHandler ^Listboxx;
     
    		void ExecuteLongTraitement()
    		{
    			this->Invoke(Listboxx);
     
    		}
     
    		void MyUpdateListBox(String^ message)
    		{
    			listBox1->Items->Add("titi");
                            //Normalement je met :
                            //listBox1->Items->Add(message);
    		}
     
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO*: ajoutez ici le code du constructeur
    			//
    			Listboxx = gcnew ListBoxDelegateHandler(this, &Form1::MyUpdateListBox);
     
    		Threading::Thread ^t = gcnew Threading::Thread(gcnew Threading::ThreadStart(this, &Form1::ExecuteLongTraitement));
    		t->Start();
     
     
    		}
    Je fais un petit programme de test pour comprendre le principe de delegate et thread ensemble.

    Le vrai programme que je dois faire :
    Un programme qui permet d'envoyer des données par sockets.
    Et recevoir des informations du serveur et les ajouter dans une listbox qui est dans un thread. Mais comme j'ai vu qu'on ne pouvait pas faire du Cross threading donc faut passer par un delegate mais toutefois en C++ j'ai du mal. Est ce que je suis dans la bonne voie? Le code de la FAQ c'est en C# et non en C++... Une aide serait la bienvenue. Merci.

    Si je ne suis pas dans la bonne section, je prie un modérateur de placer mon topic au bon endroit.

    tchou

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    C'est du C++/CLI, pas du C++.
    Boost ftw

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Autant pour moi !

    Sinon j'ai résolu mon problème de cross threading.

    Vous pouvez verrouiller le topic

    Bonne soirée.

    La prochaine fois je réfléchirai une 4e fois avant de poster ici

    tchou ++

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

Discussions similaires

  1. [VB.NET]Erreur "invalid cross-thread operation"
    Par NicolasJolet dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2006, 12h38
  2. [VB.NET 2.0] Cross-Thread Exception
    Par guillaume1998 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 30/01/2006, 18h16
  3. [vb.net] [System.Threading] Etats d'un Thread
    Par arnolem dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/01/2006, 16h41
  4. Réponses: 8
    Dernier message: 01/12/2005, 11h40
  5. [VB.NET] récuperer item listbox !
    Par HULK dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/07/2005, 16h38

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