Pessoal, tentei essa implementação que o pozzo sugeriu, só que para o meu caso não serviu …
eu preciso de algo que funcione como se fosse o kill do linux …
então imaginem que eu tenho o seguinte :
public class LancaProcedimento extends Thread{
private static LancaProcedimento instance = null;
private boolean threadDone = false;
public static LancaProcedimento getInstance(){
if(instance == null) {
instance = new LancaProcedimento();
Thread t = instance;
t.start();
}
return instance;
}
public void parar(){
threadDone = true;
}
public void run(String arquivo,br.com.oside.AdminSaudePro.service.ServiceProcedimentos.TipoArquivo tipo,Connection conn, String continuar){
ServiceProcedimentos sp = new ServiceProcedimentos();
while(!threadDone){
if("nao".equals(continuar)){
try {
sp.rodarProcedimentosComeco(arquivo, tipo, conn);
threadDone = true;
} catch (ParseException e) {
for (StackTraceElement se: e.getStackTrace()) {
System.out.println(se);
}
} catch (Exception e) {
for (StackTraceElement se: e.getStackTrace()) {
System.out.println(se);
}
}
}
if("sim".equals(continuar)){
try {
sp.rodarProcedimentos(arquivo, tipo, conn);
threadDone = true;
} catch (ParseException e) {
for (StackTraceElement se: e.getStackTrace()) {
System.out.println(se);
}
} catch (Exception e) {
for (StackTraceElement se: e.getStackTrace()) {
System.out.println(se);
}
}
}
}
}
}
tem esse método : sp.rodarProcedimentosComeco(arquivo, tipo, conn);
supondo que eu queira cancelar ele ( enquanto ele estiver rodando ), com esse esquema de while( true ), num funciona, pq ele só vai verificar a variavel depois que ele já tiver terminado a execução do metodo em questão …
alguem tem alguma outra idéia??
vlw
abraços