cs_Lucky92
Messages postés180Date d'inscriptionmercredi 22 décembre 2004StatutMembreDernière intervention16 août 20122 5 janv. 2011 à 15:08
Salut à tous et bonne année.
Pistol_Pete, tu peux multithreader une fonction template, mais tu ne peux pas caster une méthode d'objet en une fonction même si les prototypes semblent identiques. En revanche, il est possible d'utiliser une méthode de classe en lieu et place d'une fonction.
En clair voilà ce que tu peux donner à manger à la fonction CreateThread :
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 4 janv. 2011 à 23:33
salut,
J'ai appelé Bill, il m'a dit cela:
Do not declare this callback function with a void return type and cast the function pointer to LPTHREAD_START_ROUTINE when creating the thread. Code that does this is common, but it can crash on 64-bit Windows.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 5 janv. 2011 à 13:41
Où j'ai écrit que je voulais caster la classe!?
De toute façon le cast ne fonctionne pas. (impossible de convertir de "overloaded function" to 'LPTHREAD_START_ROUTINE')
Je réitère ma question : est t'il possible de multithreader une fonction template?
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 7 janv. 2011 à 00:19
bon alors, 1 partout la balle au centre :)
Je ne connais pas tres bien le c++ mais l'ennui va être que tu vas devoir creer une fonction statique pour chaque type T.
Tu n'es pas le premier à te poser la question sur google.
J'ai vu des trucs du style passer le pointeur this en lParam et declarer T *objet dans la classe afin de recuperer le type je dans la fonction statique je supposes.
Aussi, creer un nouveau type de callback afin d'inclure d'autres parametres au callback original.
En programmation, je pense qu'il ne doit pas y avoir grand chose d'impossible. Après, ça peut être capilotracté.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 janv. 2011 à 01:31
C'est ce que fait le compilo en C++, il crée 1 fonction par type T.
Les arguties de haut niveau sont toujours ramenées en interne à du code pur et dur.