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

Threads & Processus C++ Discussion :

[Multithreading] thread en C++


Sujet :

Threads & Processus C++

  1. #1
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut [Multithreading] thread en C++
    Bonjour
    je suis en train de crée une librairie COM a l'aide de ATL, et j'ai besoin d'utiliser les threads, mais je ne sais pas comment déclarer et utiliser un thread en C++.
    merci pour votre aide

  2. #2
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Bonjour,

    Le C++ ne gère pas nativement les threads.
    Dans le prochain standard, il y aura une lib de threads dans la STL, mais pour l'instant il faut que tu utilises une lib externe telle que boost.thread.
    http://www.boost.org/doc/libs/1_36_0...ml/thread.html
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  3. #3
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Merci pour ta réponse, je suis en train de lir cette documentation.
    Est ce la seule solution pour utiliser les threads en c++ ? n'y a t il pas d'autres lib (eventuellement avec doc francais) ?

  4. #4
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Les biblio de Boost sont d'excellente qualité, reconnues de tous. Ce serait dommage de s'en passer sous prétexte que la doc est en anglais.
    Tu risques de devoir te passer de beaucoup de choses si l'anglais te rebute à ce point…

    Autrement, à part les libs de threads intégrées à wxWidgets et Qt (libs d'interfaces graphiques), je n'en connais pas d'autres. Je te laisse le soin de chercher sur le net.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  5. #5
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Merci encore,
    je voulais just mieux connaitre cette lib, a propos la doc en anglais je m'en debrouillerai

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour
    Si tu as du COM/ATL j'en déduis que tu es sur Windows. Donc, tu peux utiliser l'interface windows ou les MFC pour cela. Fais un tour du côté du MSDN. Ensuite, si tu as des questions orientes-toi plutôt vers le forum MFC, tu auras plus de chance de trouver des réponses à tes questions.

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Note: si ton composant COM qui crée des threads peut être utilisé comme extension du shell, pense à ceci:
    http://blogs.msdn.com/oldnewthing/ar...8/8555658.aspx

    Et en fait, fais-le même si ce n'est pas une extension du shell. J'ai eu des problèmes dans un prog console car le composant COM de compression Zip ne le fait pas...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Merci pour vos conseils, je vais jeter un coup d'oeuil sur les liens

  9. #9
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    j'ai appliqué le même code dans l'example de msdn :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public:
    	UINT WMWatcher(LPVOID pParam)
    	{
    		return 0;
    	}
     
    	CWMApplication()
    	{
    		LPVOID pParam = NULL;
    		CWinThread* th = AfxBeginThread(WMWatcher, pParam);
    	}
    Tout ca est bien evidemment dans une de mes classes, mais je recois l'erreur de compilation suivante :
    error C3867: 'CWMApplication::WMWatcher': function call missing argument list; use '&CWMApplication::WMWatcher' to create a pointer to member

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Merci pour ton aide, voici la modif que j'ai fait et ca se compile maintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public:
    	static UINT WMWatcher(LPVOID pParam)
    	{
    		return 0;
    	}
     
    	CWMApplication()
    	{
    		LPVOID pParam = NULL;
    		CWinThread* th = AfxBeginThread(WMWatcher, pParam);
    	}

  12. #12
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    oups
    ma methode ne doit pas etre static, car elle utilise des memebres privés !
    j'ai pas encore résolu mon probleme même en regardant l'exemple dans la FAQ !

  13. #13
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    ok cette fois j'ai réussit à résoudre le probleme en suivant les etapes pas a pas de l'exemple dans la FAQ, merci a vous tous

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

Discussions similaires

  1. Web Service / SQL / Multithread / thread-safe
    Par neoncyber dans le forum Développement Web avec .NET
    Réponses: 6
    Dernier message: 18/11/2011, 12h04
  2. [Multithreading] thread en C++
    Par subzero01 dans le forum C++
    Réponses: 12
    Dernier message: 24/10/2008, 16h48
  3. [Multithreading] Thread ou non?
    Par Freud44 dans le forum Threads & Processus
    Réponses: 15
    Dernier message: 22/10/2008, 20h29
  4. [Multithreading] Thread ou non?
    Par Freud44 dans le forum C++
    Réponses: 15
    Dernier message: 22/10/2008, 20h29
  5. [MFC] Multithreading, Thread Worker
    Par pier* dans le forum MFC
    Réponses: 4
    Dernier message: 20/04/2007, 21h49

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