PDA

View Full Version : [JAVA] Start/Stop di Thread con Runtime


som
21-05-2008, 11:51
Mi trovo di fronte al seguente problema: ho un thread che avvia in successione 2 chiamate ad un altro programma. Il proseguimento del thread dipende dai valori di ritorno di queste chiamate. Io vorrei poterlo fermare ma non ci riesco se non inserendo dei ritardi.

Semplificando:

- Premo uno start

- Parte il thread:

Process proc = rt.exec(StringaComando);
int exitVal = proc.waitFor();

Se il valore di ritorno è quello giusto parte un'altra chiamata:

Process proc2 = Runtime.getRuntime().exec(StringaComando2);
int exitVal2 = proc2.waitFor();

- Premendo uno stop vorrei mettere il thread in uno stato di WAITING, per poi poterlo fare ripartire ripremendo su start (questa parte dovrebbe andare)

Subito prima della chiamata al secondo processo ( che ha tempi di attesa più lunghi ) ho messo questo codice:


synchronized (this){
while(pleaseWait){
try{
proc2.destroy();
System.out.println("In ATTESA");
this.wait();
} catch (Exception e){
}
}
}

in cui il valore pleaseWait viene cambiato premendo sullo Stop, ma il problema è che quando premo lo Stop il programma è già passato di là ed è già in attesa che il secondo processo termini.

Quindi in pratica a meno di uno sleep prima del controllo della variabile pleaseWait non riesco a fermarlo! :mad:

Qualcuno ha qualche suggerimento su come possa fare?
grazie cmq :D