Bonjour.
J'ai un prob avec les thread windows.
Le but est de lancer un traitement sur un objet dans une thread, et d'avoir une tempo qui va détruire la thread si le traitement n'est toujours pas fini au bout d'un certain temps
fonction appliqué par la thread
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 DWORD WINAPI fonction_thread( LPVOID param) { MaClass* pMaClass = reinterpret_cast<MaClass*> param; pMaClass->Debut(); pMaClass->f2(); pMaClass->f3(); pMaClass->Fin(); return 0; }
et dans une fonction de MaClass
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int MaClass::TraitementThread() { . . . DWORD dwThreadId = 0; HANDLE handle = CreateThread( NULL, 0,(LPTHREAD_START_ROUTINE) fonction_thread, (LPVOID) this , 0, &dwThreadId); //fonction qui va attendre et terminer la thread si elle ne se fini pas au bout d'un certain temps DWORD dwWaitResult = WaitForSingleObject(handle,10000); . . . }
Mon problème est qu'une des fonctions ne fonctionne pas si elle est appeler par la thread.
Je suis obligé de l'appeler aprés l'execution de la thread.
Je ne voit pas trop ou est le problème...
es parce que je passe "this" en paramètre de ma thread?
es un problème de synchronisation entre la thread principale et l'autre?
Comment résoudre ce problème?
étant le seul endroit ou j'ai une thread je cherche une méthode très simple... (peut être un mutex)
Partager