et dans ma fonction threadfunc, je modifie une variable globale dont je regarde régulièrement la valeur. Celle ci ne change jamais.
Je me dis donc que j'ai oublié quelque chose.
De même que sous unix, il ne fait pas oublier l'option -lpthread, y a-t-il qqch de semblable à ne pas oublier sous windows ?
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 20 déc. 2004 à 23:58
Ou plus simple, tu le crées avec CREATE_SUSPENDED... Mais as-tu bien pensé à appeler ResumeThread après l'avoir créé ?
Sinon comme le fait remarquer BruNews : ne JAMAIS modifier une variable globale dans un thread sans l'entourer d'une section critique, sinon attention aux accès concurrents...
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 21 déc. 2004 à 09:50
Aucune option de compilation n'est requise pour lancer le thread (il faut tout de même spécifier la lib multi-thread du Runtime sous VC mais sous dev-cpp je ne crois pas que cela soit nécessaire).
Il est inutile de faire un cast (LPTHREAD_START_ROUTINE)threadfunc, si le prototype de la fct threadFunc est le bon, cela doit passer direct à la compilation, sinon c'est qu'il y a un pb.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 21 déc. 2004 à 10:59
Quand on utilise CreateThread(), donc direct API, pas besoin de la lib multi thread CRT. En ne la mettant pas, on obtient d'ailleurs un exe moins gros.