Olá a todos,
Desta vez o problema é um pouco mais complexo...
Tenho um metodo que recebe como parametro um valor boleano, este indica se outro metodo será executado paralelo ou não.
int i=0;
public void atualiza(boolean valor){
// Este parametro vai determinar se
if(valor){
new Thread(new Runnable(){
//chama o metodo a ser executado em segundo plano
faz();
}).start();
}else{
faz();
}
}
public void faz(){
// Realiza a operação
i++;
}
Já consegui colocar pra outra Thread atualizar o JProgresBar, o problema é o seguinte:
O usuario pode excolher entre executar normalmente o metodo - faz();
Ou optar por coloca-lo em outra Thread pra que seu processamento seja realizado em background.
o porque disso?? Imaginemos que o metodo faz(), atualiza o valor de um inteiro, caso queira utilizado pra calculo ou afins, o metodo a execução da primeira Thread so pode ser continuada quando a outra for terminada, para que o valor do inteiro seja o valor de toda a execução - Pensando em uma situação mais real, carregar o Hibernate ou realizar uma consulta muito demorada....onde os valores importam nesta outra Thread, imaginemos que seja uma tela swing !
O problema é que se colocar na mesma thread o Jprogressbar fica parado por conta do processamento da consulta, se colocar em outra Thread pra que realize em segundo plano, nao tem como pegar os valores reais da consulta...
Como proseguir???