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

Windows Discussion :

Passage de plusieurs paramètres dans un thread.


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Par défaut Passage de plusieurs paramètres dans un thread.
    Bonjour à tous,

    Voila mon problème, je voudrai pouvoir passer en paramètre à mon thread 3 variables , une de type char * et les deux autres unsigned int. Seulement voila, je ne comprend pas bien comme il faut que je fasse car dans la signature du thread le paramètre est LPVOID lParam. Donc pour passer 1 paramètre cava , suffit de faire un cast, mais pour passer plusieurs paramètres en mm temps, comment faut-il faire ?

    Quelqu'un peux me donner un exemple svp ?

    MErci d'avance.

  2. #2
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut
    Euh, je suis pas tout à fait sûr de ce que je vais dire...

    A priori, je procederais comme ça :

    Definir une structure :

    struct mesParametres
    {
    char param1;
    char param2;
    void *ceQueTuVeux;
    balbla....
    }

    Ensuite, tu cree une structure, tu la remplit :

    mesParametres paramPourLeThread;

    paramPourLeThread.param1 = 'a';
    paramPourLeThread.param2 = 'b';
    paramPourLeThread.ceQueTuVeux = NULL;
    blabla...

    Et tu files en parametre pour le thread &paramPourLeThread (pointeur sur la structure que tu viens d'instancier)

    Ensuite, dans le thread, tu fais :

    mesParametres *parametres;
    parametres = (mesParametres *) lParam;

    et magique, tu as :

    param1 = parametres->param1;
    param2 = parametres->param2;
    blabla...

    A peu de choses pres, tu doit pouvoir t'en sortir comme ça.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Par défaut
    Salut,


    Oui j'y avait penser, cela devrai fonctionner, cependant je suis kazi certain que une autre solution exist, il me semble avoir déjà vu cela quelque part mais plus moyen de retrouver où :s . Mais merci quand mm de ta réponse

  4. #4
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut
    Une autre solution ?

    Je vois vraiment pas, à part dialoguer avec le thread pour lui filer les parametres apres sa creation, mais ce n'est plus la meme chose.

    A mon avis cette methode est la plus simple et la plus standard (cette procedure est courante dans l'API windows : on file en parametre un pointeur sur un objet du bon type)

    Le seul inconvenient, c'est qu'il faut etre sur que la structure n'est pas detruite quand tu vas lire le pointeur.

    Autrement dit, il faut des la premiere lecture recopier le contenu de la structure pointée par le parametre dans une autre aui est stockée avec le thread, sinon tu feras des lecture sur un ^pointeur qui ne pointe sur plus rien, d'ou erreur !

  5. #5
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Il en n'existe pas d'autres pour passer un paramètre à une fonction de thread car c'est l'interface elle même qui le spécifie.

    Si une autre solution, utiliser des variables globales....

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Par défaut
    Yop,


    Je vien de faire cette solution, cela fonctionne très bien, si on déclare la variable en static car , le thread travaillant comme un programme apart, dans ma fonction qui crée le thread une fois finie les varaibles déclarée dans celle ci sont libérée et donc les données dans le thread risque d'être effacé et donc cela revient à utiliser des fonction global quasi non ?

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

Discussions similaires

  1. Passage de paramètre dans le thread.
    Par minou777 dans le forum Threads & Processus
    Réponses: 3
    Dernier message: 19/09/2009, 16h29
  2. Passer plusieurs paramètres dans un callback (débutant!)
    Par pilouface dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 07/02/2007, 20h42
  3. Passage de paramètres dans un thread
    Par innosang dans le forum POSIX
    Réponses: 1
    Dernier message: 04/01/2007, 15h13
  4. Passage de plusieurs paramètres dans un lien
    Par Greldinard dans le forum Langage
    Réponses: 4
    Dernier message: 09/10/2006, 17h28
  5. [SQL Server] Passage d'un paramètre dans une procédure
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2005, 13h19

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