bonjour,
voila j'ai un programme ou j'utilise le multi-thread
donc je crée un thread

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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