Bonjour,
j'ai actuellement le code suivant:
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
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
 
DWORD WINAPI monthread(LPVOID);
 
DWORD WINAPI monthread(LPVOID lpParameter){
	int i;
	for (i=30;i>=0;i--){
		printf("il reste %d seconde(s)\n",i);
		Sleep(1000);
	}
	return 0;
}
 
int creationthread(){
	HANDLE handlemonthread;
	DWORD ID1;
	printf("On cree notre thread\n");
	handlemonthread=CreateThread(NULL,0,monthread,0,0,&ID1);
	while (handlemonthread!=0){
		if (kbhit()){
			return 0;
		}
	}
	return 0;
}
 
int main(){
	printf("essai de la creation d'un thread\n");
	creationthread();
	printf("Fin du programme\n");
	getchar();
	return 0;
}
LE but est de faite un decompte de 30 jusqu'a 0 et si l'utilisateur appui sur une touche le programme arrete le decompte et va se terminer.
Cependant, si j'appui sur une touche pendant le décompte, mon thread reste actif.
Comment faire pour savoir d'une part s'il est actif (car ma boucle while tournera toujours, visiblement il ne faut pas recuperer l'etat de handlemonthread) et d'autre part, comment fermer mon thread?

Cordialement,

F-k-z