Duvida cm Timer

1 resposta
fabim

tenho uma duvida com Timer…

tenho um timer, q dispara uma task (TimerTask) de 5 em 5 segundos…

no run, eu tenho a possibilidade de executar determinada procedure q creio eu vai levar uns 10 segundos…

minha pergunta: o Timer hanga a execucao ate q o processo demorado termine, ou 5 seg apos ele ter disparado ele ja dispara novamente o task?

1 Resposta

Jeferson_Flamini

oi fabiocsi,
Para um Timer, existe um único thread que faz a execução de todos TimerTasks associados, por isto o Timer vai demorar o tempo que levar seu processo ou o delay de execução, aquele que for maior, para executar novamente.
Se vc quiser liberar o Timer, basta tornar o sseu processo assincrono, criando um novo thread para ele.
Note que o thread do Timer não roda como ‘daemon’, então no caso de encerramento da aplicação, esta ficará aguardando o thread finalizar. Para contornar isto, vc pode executar o metódo Timer.cancel().

Jeferson Flamini
:wink:

Criado 11 de janeiro de 2007
Ultima resposta 12 de jan. de 2007
Respostas 1
Participantes 2