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

Visual C++ Discussion :

Les thread en c++


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Les thread en c++
    Bonjour à tous

    Voila j'essaie de comprendre comment marche les thread en c++ avec visual studio .net.

    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
     
     
    HANDLE g_event;//Les threads en c++//Déclaré en public
     
     
    DWORD WINAPI Thread1(LPVOID lpParam)
     {//Ligne 236
      //Application en écoute;
      SetEvent(g_event);
      return 0;
     }
     
    private: System::Void Form1_Load(System::Object *  sender, System::EventArgs *  e)
      {
      g_event=CreateEvent(NULL, 0, 0, NULL);//ligne 311
      DWORD threadID;//ligne 312
      CreateThread(NULL, 0, &Thread1, NULL, 0, &threadID);//ligne 313
      WaitForSingleObject(g_event, INFINITE);//ligne 314
      }


    J'ai deux problèmes de compilation. Il me donne les problème suivants:
    Form1.h(313): error C2276: '&' : opération non conforme sur l'expression d'une fonction membre liée
    Form1.h(236): warning C4440: redéfinition de la convention d'appel de '__clrcall ' en '__stdcall ' ignorée


    Pour la partie CreateThread j'ai aussi utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Thread1, NULL, 0, &threadID);//ligne 313
    mais ca ne marche pas

    il me donne cette fois ci l'erreur : Form1.h(313): error C2440: 'cast de type' : impossible de convertir de 'overloaded-function' en 'LPTHREAD_START_ROUTINE'


    Je vous remercie tous de vos réposes.

  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
    Ce qu'il faut fournir c'est pas l'adresse d'une variable mais celle d'une fonction

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    D'après mes recherches on ne peut pas faire ce que je veux comme j'ai fait. A parament il faut utiliser des threads managé!

    Est ce que quelqu'un a une idée là dessus?

    loufoque, ce que j'ai fait c'est ce qu'il fallait faire pour le c++. C'est bizarre mais c'est comme ça! Ca ne marche pas car je ne travaille pas avec des thread mangé.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    pourquoi ne pas travailler justement avec les thread de .Net ?

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous

    J'ai trouvé comment travailler avec le thread en c++.

    Tout d'abord il faut déclarer un thread managé dans variable globale.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread* mon_thread;//On déclare un thread
    ensuite il faut définir le thread et le démarer!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mon_thread=new Thread(new ThreadStart(this,&Form1::deb_thread));	mon_thread->Start();
    et pour terminer il faut définir ce que le thread devra faire! (la fonction qu'exécute dans mon cas c'est la fonction deb_thread)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void Form1::deb_thread()//Le thread !!!!
    {
         //Les actions exécutés par la fonction.
    }
    et voilà c'est aussi simple que ça.

    J'éspère que cela vous aidera

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

Discussions similaires

  1. Aide sur les Threads
    Par themoye dans le forum MFC
    Réponses: 24
    Dernier message: 06/03/2005, 15h02
  2. Les Threads... J'en remet une couche :)
    Par Higestromm dans le forum C++
    Réponses: 5
    Dernier message: 17/11/2004, 12h19
  3. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25
  4. Question simple sur les threads :)
    Par momox dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2003, 04h13
  5. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59

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