Galera, tenho um aplicativo que precisa rodar todo dia em um horário. Para isso estou fazendo da seguinte forma:
public TControlePrincipal()
{
Timer timer1= null;
try
{
timer1= new Timer(true);
Calendar calendario = new GregorianCalendar();
calendario.set(Calendar.DAY_OF_MONTH,calendario.get(Calendar.DAY_OF_MONTH) + 1);
calendario.set(Calendar.HOUR_OF_DAY, TConstantes.HORA);
calendario.set(Calendar.MINUTE, TConstantes.MINUTO);
calendario.set(Calendar.SECOND, 0);
timer1.scheduleAtFixedRate(new ProcessoExecutar(), calendario.getTime(), TConstantes.PERIODO);
}
catch (Exception e)
{
log.logarEmArquivo(e, e);
}
}
public static void main(String[] args)
{
// TODO code application logic here
new ControlePrincipal();
}
A parte de registrar a Thread que irá executar esta funcionando corretamente, ja que uso em outro projeto. Porém como esta tudo do main ele registra a thread e finaliza a aplicação. A única forma que encontrei de manter o programa executando enquanto a thread não inicia é fazer uma POG colocando um while true após registrar a thread. Qual a maneira correta de fazer isso ??