PDA

View Full Version : [C] Chiusura Tanti Thread + Lettura tastiera non bloccante, come?


parisisalvo
14-10-2005, 16:58
Salve, vorrei realizzare un thread di uscita per il mio software...
in modo tale che alla pressione del tasto ESC, vengano chiusi tutti i thread che l'applicativo lancia.
Il software è composto da 4 thread, sono tutti thread ciclici, e per ora girano sotto la condizione

// codice dentro i thread, sono 4 distinti

while(1) {
...
...
}

la mia idea per ammazzarli, era di :
* definire una variabile uscita, e inizializzarla a zero : USCITA=0;
* fare ciclare i thread secondo questa condizione
while(!USCITA){
...
...
}

e quindi di creare un thread parallelo, che alla pressione del tasto ESC, ponga la variabile uscita =1 e poi "badaban" tutti i thread alla valutazione della condizione finiscono di clicare ed escono.
Domande
1) c'e' una funzione (tipo nel pascal keypressed() ) che si aggorga delle pressione di un tasto? c'e' un'altra funzione che legga il tasto premuto? (tipo in pascal readkey)
2) c'e' un modo piu' elegante per ammazzare i thread?
Grazie
CIAO

cionci
14-10-2005, 18:08
Che compialtore ? Anche se sono brutte (perchè non standard, ma suppongo che tu abbia altre cose non standard nel tuo programma visto l'uso dei thread) ci sono getch() e kbhit()...

parisisalvo
14-10-2005, 18:47
sono sotto linux
uso pthread.h,penso sia tutto standard...

cionci
14-10-2005, 18:53
uso pthread.h,penso sia tutto standard...
Non certo standard ANSI... comunque o cerchi un'implementazione di getch e kbhit per linux (solitamente sono in conio.h) oppure cerchi un thread in questa sezione in cui ilsensine spiegava come fare unbufferd input su Linux...