Como estruturar

2 respostas
smota

Ola Pessoal,

Estou em dúvida como fazer isso:

Tenho uma aplicação que gera diversos relatórios, para cada relatório existe uma classe que será uma thread mas um relatório só pode comecar a ser gerado depois que o outro terminou.

No ActionListener da GUI eu simplesmente faço algo assim:

btnProcessar.setEnabled(false); try { if(rbAnalitico.isSelected()) { app.processaAnalitico(); while(app.getProcessing()) Thread.sleep(1000); } if(rbSintetico.isSelected()) { app.processaSintetico(); while(app.getProcessing()) Thread.sleep(1000); } } catch (InterruptedException e1) { e1.printStackTrace(); } btnProcessar.setEnabled(true);

:arrow: O problema é por causa do loop para o Sleep que congela minha tela …

eu queria ter esse comportamento mas sem congelar a tela.

minha GUI já é um observer e cada thread é observable enviando mensagens pra eu acompanhar o processamento … talvez eu pudesse mudar o controle da geração para o método update() mas eu acho que vai ficar feio, existe alguma outra alternativa? Um pattern? :roll:

Obrigado

2 Respostas

maxguzenski

app é uma thread ? e voce tem outra “Thread” ? é isso?

pq simplesmente vc nao faz:

app.processaXXX();

app.join();




??

smota

[quote=“maxguzenski”]app é uma thread ? e voce tem outra “Thread” ? é isso?
pq simplesmente vc nao faz:

[quote]

não, app não é uma thread … ele starta outras threads … não faço um join() pq seria o mesmo que rodar no EventDispatcherThread (a GUI congelaria do mesmo modo) …

mas eu tinha esquecido do join :slight_smile: … vou ver o que faco aqui …

valeu

Criado 12 de junho de 2003
Ultima resposta 12 de jun. de 2003
Respostas 2
Participantes 2