Bonjour à tous,

Dans une de mes classes, je souhaite créer un thread d'une fonction statique contenue dans une autre classe.

Mais lors de l'appel de cette fonction, mes paramètres sont perdus et Visual Studio me signale un "Le processus ou le thread a changé depuis al dernière étape".

Voilà comment j'ai procédé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
//classeDuThread.h
classeDuThread{
 
 typedef struct MyData {
     int opt;
     double* rgb;
 } MYDATA, *PMYDATA;
 
 classeDuThread();
...
};
 
//classeDuThread.cpp
...
 DWORD id;
 PMYDATA param=0;
 param=(PMYDATA) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(MYDATA));
 param->opt=0;
 param->rgb=0;
 HANDLE hand= ::CreateThread(0, 0, (LPTHREAD_START_ROUTINE)&(classeFonction::maFonction), param, 0, &id);
 
 if(m_hThread)
 {
  	WaitForSingleObject(hand, INFINITE);
 }
En debug je passe bien dans maFonction mais les paramètres ne sont pas initialisés.

Quelqu'un peut-il me dire ce qui cloche ?

Merci par avance.