cs_GUERRIER_ABSOLU
Messages postés6Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention10 juillet 2004
-
3 févr. 2004 à 06:09
cs_supergrey
Messages postés475Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention20 septembre 2010
-
3 févr. 2004 à 09:27
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
cs_supergrey
Messages postés475Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention20 septembre 2010 3 févr. 2004 à 09:25
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.