Threads s'exécutant en parallèle
Bonjour à tous!!
J'ai un gros problème qui me bloque définitivement dans mon programme.
J'utilise deux threads pour envoyer respectivement une fonction d'écriture et une fonction de lecture. Il faut cependant absolument que ces deux threads s'éxecutent en parallèle.
Alors j'ai fait ca, c'est-à-dire deux threads:
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
bool Maintenance::InitThread()
{
m_pThread = AfxBeginThread(ThreadFunc, this);
if(!m_pThread)
{
// Impossible de créer le thread !
return false;
}
return true;
}
bool Maintenance::InitThread2()
{
m_pThread2 = AfxBeginThread(ThreadFunc2, this);
if(!m_pThread2)
{
// Impossible de créer le thread !
return false;
}
return true;
}
UINT Maintenance::ThreadFunc(LPVOID pvParam)
{
Maintenance *pThis=reinterpret_cast< Maintenance *>( pvParam) ;
// Thread code
while(1)
{
Card.ReadnExec();
}
return 0 ;
}
UINT Maintenance::ThreadFunc2(LPVOID pvParam)
{
Maintenance *pThis=reinterpret_cast< Maintenance *>( pvParam) ;
// Thread code
while(1)
{
Card.enableCard();
}
return 0 ;
}
BOOL Maintenance::OnInitDialog()
{
CDialog::OnInitDialog();
CCom::ClosePortCom();
CCom::InitPortCom();
i=0;
//initialisation of the thread
InitThread();
if(InitThread()!=TRUE)
AfxMessageBox("erreur à l'initialisation du thread");
//initialisation of the thread
InitThread2();
if(InitThread2()!=TRUE)
AfxMessageBox("erreur à l'initialisation du thread");
return(TRUE);
} |
Est ce que je pars sur le bon chemin ?? Cependant ces deux threads la ne se font toujours pas en parallèle...
Merci d'avance