Executar após 20 segundos

6 respostas
pix

Seguinte, estou trabalhando com uns arquivos da NFe, ele leva um tempo pra processar e gerar um retorno, o que não estou conseguindo fazer é esperar esse tempo pra pegar o retorno.

public void pegaRetorno(String codigo) throws FileNotFoundException, IOException { File diretorio = new File("C:\NFE\erro"); File fList[] = diretorio.listFiles(); if (fList.length > 0) { for (int i = 0; i < fList.length; i++) { if (fList[i].getName().equals(codigo + "-nfe.xml")) { JOptionPane.showMessageDialog(null, "Erro no envio da NF-e, Verifique!"); } } } }

Queria que o código assima executasse após 20 segundos, alguém pode ajudar?

6 Respostas

idev4web

voce pode usar Timer e TimerTask

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/threads/timer.html

M

Nao sei se estou certo mas voce podia tentar colocar isso em uma thread, e na thread colocar um loop e dentro dele colocar um sleep(20000).
tipo

while (true) {
//aqui dentro vai o sleep
// e ai se alguma condição for satisfeita você da um break;
}

Se eu tiver falado besteira ajudem \o/

filipenf

mas vc não tem como saber qdo chegou o retorno ? e se vc esperar os 20 segundos e ainda não estiver OK ?

pix

Desculpa pela demora.

Poisé não daria certo mesmo, acabei fazendo um while “interminavel”, quando chega o retorno eu seto o while como false e leio o retorno :smiley:

Felagund

vc pode usar o SwingWorker e fazer no metodo doInBackground um Thread.sleep(20000)

e ta feito o esquema.

B

Existem bibliotecas como o Quartz que solucionam essa categoria de problemas. Dê uma olhada.

Criado 25 de junho de 2009
Ultima resposta 9 de jul. de 2009
Respostas 6
Participantes 6