Bonjour tout le monde !
Je tente d'utiliser un event pour terminer mon programme. J'ai deux threads, un qui lit ce que je tape sur mon clavier et qui signalise un event si je tape la lettre 'c'. L'autre thread exécute quelques lignes de codes et doit se fermer si l'évènement est signalisé.
En code, cela donne ça :
En gros, je voulais faire :
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 static DWORD WINAPI CLP(LPVOID arg) { while (TRUE) { if (WaitForSingleObject(hEvent, INFINITE) != WAIT_OBJECT_0){ printf("LIGNES DE CODE\n"); // lignes de code... } else{ printf("JE QUITTE\n"); break; } } ExitThread((DWORD) 0); return(0); } static DWORD WINAPI LeituraTeclado(LPVOID arg) { int tecla; while (TRUE) { tecla = getch(); if(tecla == 0x63){ //0x63 correspond a la lettre 'c' printf("\nJe signalise l'evenement\n"); PulseEvent(hEvent); break; } } ExitThread((DWORD) 0); return(0); }
if(Event non signalisé)
EXECUTER CODE
else
QUITTER LE PROGRAMME
Le problème avec le code que j'ai écrit au dessus, est que le thread reste bloqué au WaitForSingleObject et seulement va se libérer quand l'évenement est signalé, et je voudrais qu'il exécute les lignes de code du if tant que l'évènement n'est pas signalisé. Vous avez une idée de comment y arriver? (seulement à base d'event)
Merci d'avance pour votre aide et désolé pour mes fautes de français.
Tchau!
Partager