Bonjour,
au sein d'une de mes classes, j'aimerais qu'une méthode en lance une autre, mais dans un autre thread.
Pour cela, j'utililse une méthode statique temporaire (comme vu sur développez.com) de type
auquel je passe une structure de la facon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 static DWORD WINAPI runBufferThread(void *p) { struct threadParam* param = reinterpret_cast<threadParam*>(p); VideoRenderer *renderer = param->renderer; return renderer->testThread(); }
J'arrive alors à récupérer le "this" pour lancer une méthode dans le thread, par contre, tous les attributs de ce "this" (vector et int) se retrouvent non initialisés (alors qu'ils le sont dans le constructeur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct threadParam param; DWORD ThreadId; param.renderer = this; CreateThread(NULL, NULL, &VideoRenderer::runBufferThread, ¶m, NULL, &ThreadId);
Comment faire pour résoudre ce pb ?
Merci d'avance
Partager