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 :

[Win] Thread passage Structure pointeur Vector + string


Sujet :

Threads & Processus C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 63
    Points : 42
    Points
    42
    Par défaut [Win] Thread passage Structure pointeur Vector + string
    Bonjour a tous,

    Je débute avec les thread et je galére un peu pour faire passer une structure contenant un pointeur sur un vecteur qui contien lui un pointeur vers un objet.

    La classe HTTP gère le téléchargement de 1 fichier et le classe HTTPThread dois créer un thread et crée un objet HTTP pour chaque téléchargement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private:
    std::vector<HTTP*>  tab;
    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
    struct sThread
    {
    	vector<HTTP*> *tab;
    	string url;
    };
     
    int HTTPThread::DownloadThread(string url)
    {
    	sThread a;
    	a.tab = &tab;
    	a.url = url;
     
    	CreateThread ( NULL, NULL, ThDownload, &a, 0, &dwThreadId ) ;
    	return 0;
    }
     
    DWORD WINAPI HTTPThread::ThDownload ( LPVOID IpvThreadParam )
    {
    	sThread *tr = (sThread *)IpvThreadParam;
    	HTTP Download;
     
    	tr->tab->push_back(&Download);
    	Download.Download(tr->url,"");
    	return 0;
    }
    Je sais que ce n'est pas très propre mais je ne vois pas comment faire d'autre pour gérer plusieurs téléchargements en parallèles. Je ne comprends pas ce qui cloche quand je passe la structure.


    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    On ne pourrait que vous recommander de recourir aux ressources du C++11 pour la gestion des threads.
    Lire par exemple l'excellent livre tout récent : Anthony Williams, C++ Concurrency in Action.
    Ou, pour débuter cette petite série :
    http://solarianprogrammer.com/2011/1...read-tutorial/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    Je ne savais pas qu’on pouvait faire des threads directement comme cela.
    Cela marche parfaitement et cela est beaucoup plus simple, merci beaucoup.

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

Discussions similaires

  1. vector <string> paramètre thread
    Par parabole33 dans le forum Threads & Processus
    Réponses: 7
    Dernier message: 05/01/2012, 19h41
  2. Vector de structure contenant des string
    Par Nicolas Bauland dans le forum C++
    Réponses: 9
    Dernier message: 04/02/2010, 12h47
  3. Passage de pointeur de vector en paramètre
    Par Chop_chop dans le forum SL & STL
    Réponses: 2
    Dernier message: 11/05/2007, 11h33
  4. Réponses: 2
    Dernier message: 18/12/2006, 18h03
  5. [allegro]passage de pointeur sur image
    Par Gonath dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 13/12/2003, 18h47

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