Pb Application multitache
Bonjour
je suis en train de développer une petite application d'apprentissage concernant les threads. j'ai créé une fonction principale de thread dont voici le code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
UINT CMultitacheDoc::ThreadFunc(LPVOID pParam)
{
// Convertit l'argument en un pointeur sur la roue pour ce thread
CRoues* LpRoue = (CRoues*) pParam;
// récupère un pointeur sur l'indicateur de continuation
BOOL* pbContinue = LpRoue->GetContinue();
// boucle tant que l'indicateur de continuation indique TRUE
while (*pbContinue)
// LpRoue Dessine
LpRoue->Draw();
return 0;
} |
j'ai ensuite créé une fonction de démarrage et d'arrêt de threads dont voici le code :
Code:
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 27 28 29 30 31 32 33
|
void CMultitacheDoc::GestionThreadRoue(int nIndex, BOOL Status)
{
// Si nous suspendons le thread
if (!Status)
{
// Le pointeur sur le thread est-il valide ?
if (m_pRoueThread[nIndex])
{
// Récupère le handle pour le thread
HANDLE hThread = m_pRoueThread[nIndex]->m_hThread;
// Attend que le thread meurt
::WaitForSingleObject (hThread, INFINITE);
}
}
else // Sinon nous exécutons le thread
{
int iSpnr;
// Quelle roue utiliser ?
switch (nIndex)
{
case 0:
iSpnr = 1;
break;
case 1:
iSpnr = 3;
break;
}
// Démarre le thread, en passant un pointeur sur la roue
m_pRoueThread[nIndex] = AfxBeginThread(ThreadFunc,
(LPVOID) &m_cRoue[iSpnr]);
}
} |
lorsque je génère mon application j'ai l'erreur suivante :
error C3867: &'CMultitacheDoc::ThreadFunc'*: liste d'arguments manquante dans l'appel de fonction*; utilisez 'CMultitacheDoc::ThreadFunc' pour créer un pointeur vers membre.
j'ai pris comme référence l'explication sur les processus et je ne vois pas d'ou provient mon erreur.
je developpe sous Visual C++ 2008 et mon SE est Windows XP pro
merci pour votre aide
JF MARTIN
pense à utiliser la balise code, Merci Farscape