Bonjour,

je vous explique une peu ce que je veux faire.
J'ai une checkbox, si on la coche on doit lancer un thread, quand elle n'est plus lancée on doit terminer/killer le thread

Pour lancer mon thread j'utilise AfxBeginThread

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
/*
 * Description: Fonction détectant un changement de status (chochée / non cochée) de la CheckBox
 *				Si la CheckBox est cochée on appelle la fonction RefreshList() actualisant les informations des serveurs de la CListCtrl
 * E:
 * S:
 * return: void
 */
void Tab2::OnChkChange() 
{
	if(IsDlgButtonChecked(IDC_CHECKREFRESH)) 
	{	
		AfxBeginThread(ThreadRefreshList, this);
	}
	else
	{
		// On termine le thread
		//AfxEndThread();
	}
}
 
UINT Tab2::ThreadRefreshList(LPVOID pParam)
{
	Tab2 * self = (Tab2 *)pParam;
	self->RefreshList();
    return 0;
}
Mon premier problème est que je n'arrive par a killer le thread malgré la FAQ ( http://cpp.developpez.com/faq/vc/?pa...opWorkerThread )
Ensuite je m'intérroge sur les threads, ma fonction RefreshList() est récursive
RefreshList()
{
//... du code
RefreshList();
}

dois-je laisser ca comme ca ou lancer à intervalle régulier un thread ?


Merci