à propos des threads

Signaler
Messages postés
6
Date d'inscription
vendredi 21 novembre 2003
Statut
Membre
Dernière intervention
10 juillet 2004
-
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
-
Salut, je voudrais savoir s'i quelqu'un a déjà essayé d'appeler une fonction dans un thread et a remarqué quelque chose d'innatendu. En fait quand j'appelle une fonction avec un thread, on dirait que le thread saute le code de la fonction, j'ai fait la remarque aussi bien sur Linux que sur Windows. À présent j'ai sérieusement besoin d'appeler des fonctions dans un thread (c'est pour une application que j'écris). Quelqu'un a-t-il un truc à me conseiller pour contourner ce fâcheux probrème? Y a t-il moyen d'appeler des fonctions dans un thread comme le ferait toute fonction.
L'autre problème que j'ai est que mes threads ne veulent même pas s'initier quand leur code ne sont pas dans des fonctions globales (ça je ne l'ai essayé que sous Windows). Or j'ai plein de classes dans lesquelles je dois absolument avoir quelques threads. Mais Quand je ne mets pas les threads comme méthodes et que je les mets comme fonction globales (dans le fichier source du main) ou dans un namespace alors je suis confronté au premier probleme que j'ai posé parce que je dois alors des bouts de code etc. Donnez-moi un coup de main. Merci

2 réponses

Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

Salut,
Pour ce qui est d'appeller une fonction dans un thread je ne vois pas de probleme du moment qu'elle est bien déclarée avant la définition du thread...
Par contre pour ton probleme de classes ca m'est arrivé aussi et je n'est pas de solution parfaite pour toi; mais tu peux t'en sortir. Je te conseil de mettre le thread dans le meme fichier que main ensuite j'imagine que tu fais dans main ou une autre fonction globale un truc du genre:
MACLASSE* mavariable= new MACLASSE();

Ben, a la place de ca tu met juste:
mavariable=new MACLASSE();

et au debut a l'extérieur de toute fonction (meme fichier que main) tu met:
MACLASSE* mavariable;

Comme ca ton thread pourra avoir acces a "variable" et biensur tu peux mettre autant de classes que tu veux.
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

... avoir acces a "mavariable" et biensur tu peux mettre...