View Single Post
Old 08-02-2014, 08:55   #8
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Cittā: Texas
Messaggi: 1722
Quote:
Originariamente inviato da -Leo- Guarda i messaggi
vorrei che ogni pulsante quando premuto crei un thread ed esegua un metodo, poi alla pressione di un altro pulsante, il vecchio thread sia terminato e ne venga creato un altro dove eseguire un altro metodo.
Ci sono molti modi per realizzare quello che vuoi, piu' o meno eleganti.
Siccome i tuoi thread contengono delle pause lunghe, puoi utilizzare il metodo
interrupt()
il quale fa terminare le wait(), join() o sleep(), le quali ritorneranno (all'interno del thread da cui sono chiamate) l'eccezione
InterruptedException
che dovrai gestire per terminare il thread.

Tuttavia,se il tuo programma e' CPU-consuming (fai tanti calcoli) ovviamente questo metodo non funzionera', e dovrai inventarti un modo ad-hoc per terminare il thread, e terminarlo in breve tempo.

Spesso si usa una variabile condivisa che viene testata dal thread ripetutamente. Per esempio, potresti chiamarla finito e farla valere sempre "true" fino a quando vuoi terminare.

Ovviamente devi stare attento a testarla frequentemente: non puoi lanciare operazioni di minuti senza controllare questa variabile, ok?
__________________
In God we trust; all others bring data
sottovento č offline   Rispondi citando il messaggio o parte di esso