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++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    D�cembre 2008
    Messages
    62
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2008
    Messages : 62
    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
    Par d�faut
    C'est du C++/CLI, pas du C++.

  3. #3
    Membre confirm�
    Inscrit en
    D�cembre 2008
    Messages
    62
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2008
    Messages : 62
    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