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++/CLI Discussion :

Exeption avec thread


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Par défaut Exeption avec thread
    Bonjour,
    j'ai cette exception
    Opération inter-threads non valide*: le contrôle 'textBoxMesure' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
    je sais pas comment la résoudre, je suis débutante avec les threads
    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
     
    private: void ThrFunc()
    			{
    				while(1)
    				{
    					Random ^rnd = gcnew Random();
    					int  mesure = rnd->Next(100);
    					this->textBoxMesure->Text=mesure.ToString();
    				}
    			}
     
    	private: System::Void buttonMesurer_Click(System::Object^  sender, System::EventArgs^  e) {
     
    				 // ThrFunc est la fonction exécutée par le thread.
    				 _Thread = gcnew Thread(gcnew ThreadStart(this, &Form1::ThrFunc));
    				 // Il est parfois pratique de nommer les threads surtout si on en créé plusieurs.
    				 _Thread->Name = "Thread1"; 
    				 // Démarrage du thread.
    				 _Thread->Start();
     
     
    			 }
    c'est ici que apparaît l'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->textBoxMesure->Text=mesure.ToString();
    j'ai trouvé qu'il faut utiliser les délégués mais j'arrive à convertir le code j'aurai des erreurs

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    un thread ne peut pas toucher aux controles d'une Form, seul le thread de la form est authorisé à le faire.

    Tu dois utiliser la methode Invoke (plein d'exemples ici ou là, en autre sur ce forum).

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

Discussions similaires

  1. plusieurs instance de classe avec thread
    Par lucky dans le forum MFC
    Réponses: 2
    Dernier message: 14/09/2006, 11h30
  2. Petit soucis avec Thread::Queue et une classe
    Par vodevil dans le forum Web
    Réponses: 16
    Dernier message: 09/06/2006, 21h41
  3. [SWING] Exception bizarre avec Thread
    Par Gob4 dans le forum Débuter
    Réponses: 2
    Dernier message: 13/09/2005, 21h55
  4. [MFC] Cherche Timer avec thread
    Par romeo9423 dans le forum MFC
    Réponses: 17
    Dernier message: 09/03/2005, 10h33
  5. Variable static avec thread
    Par oxor3 dans le forum Threads & Processus
    Réponses: 7
    Dernier message: 27/08/2004, 11h45

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