Probleme avec les threads
bonjour à tous, je suis nouveau sur le forum et me permet de venir chercher une aide.
je développe sous VC++ 6.0 et je galere à fond avec les threads :oops: Je vous explique mon probleme.
Je travaille sur une application qui doit retracer à l'écran le mouvement d'un objet. Ce mouvement est défini par un suite séquentielle de points que je stocke dans un tableau.
Ma fenetre principal possede une variable de type entier (m_ID) qui correspond à l'identifant du point courant.
Je voudrais que lorsque j'appuie sur un bouton, un thread se lance et aille me tracer tous mes points. (je veux utiliser un thread sinon je perd la main sur l'application tant que tout n'est pas tracé ! )
En gros l'algo du thread est :
Code:
1 2 3 4 5 6
| tant que m_ID < max
{
m_ID++
Mise a jour de l'affichage
Temporisation.
} |
sur clic du bouton j'ai mis appelé AfxBeginThread :
Code:
AfxBeginThread(ThreadLecture,this)
Et voici ma fonction ThreadLecture :
Code:
1 2 3 4 5 6 7 8 9 10 11
| UINT NomFenetre::ThreadLecture(LPVOID pParam)
{
NomFenetre* prThis = reinterpret_cast<NomFenetre*>(pPram)
while(prThis->m_ID < prThis->m_IDmax)
{
prThis->m_ID++;
prThis->majgraphique; //majgraphique appelle reellement invalide rect pour mettre a jour plusieurs zones)
sleep(200);
}
return 0;
} |
Quand je compile ca passe mais a l'execution j'ai une erreur. Visiblement il me demande de passer par un handle sur la fenetre.
Or quand je passe par un handle via FromHandle, c'est un handle générique (type CWnd) et non du type de ma fenetre et je n'ai donc plus acces a mes variables (m_ID).
Auriez vous une idée ?
Merci d'avance pour votre aide.
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]