hkari
Messages postés2Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention12 novembre 2008
-
12 nov. 2008 à 20:06
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
13 nov. 2008 à 13:34
bonjour
je travaille dans windows et je débute dans la programmation des threads en C++builder. j'ai utilisé la fonction suspend et resume pour mettre en attente l'éxécution de mon thread.
dans mon travail, le thread B a besoin d'une liste remplie par le thread A. pour cela j'ai utilisé j'ai suspendu le thread B ( en utilisant la fonction suspend dans son run) et je l'ai relancé en utilisant la fonction resume dans le run du thread A.
le probléme qui se pose c'est que j'ai un message de violation d'accés, alors que dois-je faire? et es-ce les bonnes fonctions que j'utilise??
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 13 nov. 2008 à 13:34
Salut,
Suspend, c'est moyen : le thread peut s'arrêter n'importe où... Genre c'est un peu comme si tu courais et que l'on te demandais de te figer d'un coup. Tu serais en l'air ou en position de déséquilibre.
Il vaut mieux que le thread à suspendre teste périodiquement une variable ou attende un évènement. Pour revenir à la course à pied, c'est un peu comme si tu t'arrêtait tous les dix pas pour regarder si tu devais te figer.
Quoiqu'il en soit, la création ou la suspension de threads ne peuvent pas être des causes directes de violation d'accès. Ton code doit avoir un problème quelque part.