tuer un thread en attente (socket)
bonjour,
voila j'ai un programme ou j'utilise le multi-thread
donc je crée un thread
Code:
1 2 3 4
| m_TraitementX = (CTraitement*) AfxBeginThread(RUNTIME_CLASS(CTraitement),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
ASSERT_VALID(m_TraitementX);
m_TraitementX->ResumeThread();
... |
mon thread est créé et lancer
il passe dans le constructeur puis lance la fonction Run.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| CTraitement::CTraitement()
{
...
}
int CTraitement::Run(void)
{
do
{
i = 0 ;
recvfrom(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR*)&SenderAddr, &SenderAddrSize);
...
}
while(!flag);
} |
pour le tuer j'utilise
dans le run
mais voila j'ai une boucle do while pour que mon thread pour l'arreter quant je veux(je passe flag a true.
mon programme est bloqué au niveau de la reception du socket (il attandun message).
alors quand je passe mon flag a true (a patire d'un autre classe) mon thread sera tué apres la reception du socket.
peut-on tuer un thread alors qu'il est en attende du socket
AfxEndThread peut-il etre utiliser autre par quen dans la classe Run
merci