Ola a todos, bem tempo uma aplicacao usando Java3D e em determinado momento preciso ter um atraso de tempo, para isso to usando o Thread.sleep(), porem qd é executado ele pausa a Thread atual e as modificacoes que desejo que ocorram no ambiente 3D nao ocorrem o q acaba por completo com a motivacao da aplicacao. Bem, entao seria possivel obter um atraso bem definido utilizando uma outra opcao q nao seja o Thread.sleep()???
Qq ideia ta valendo. Agradeco desde já.
Éder.
Atraso de tempo sem Thread.sleep
3 Respostas
Pelo que estou entendo vc quer algo do genero:
Linha1 - Exectua e salta pra 3
Linha2 - Pausa Esta linha
Linha3 - Executa
Linha2 - Depois da pausa… Excecuta…
Isto em linhas de código é impossivel… como que vc via dizer para pausa aqui… mas continua executando apartir dali… só com Threads…
O que vc deve fazer é uma nova Thread para executar o pedaço de código que vc quer que execute… a solução seria esta:
Linha1 - Exectua
Linha2 - Inicia Thread com o Comando da Linha 2
Linha3 - Executa
Thread / Linha2 - Executada o comando que tava na linha 2 depois da pausa…

Há e se vc não quiser criar uma nova classe num novo arquivo só pra isto… pode ser feito assim:
public class TestThread
{
public static void main(String[] args) {
class Delay extends Thread {
String value = "";
public void set(String value) {
this.value = value;
}
public void run() {
try {
Thread.sleep(1000);
} catch (Exception e) {}
System.out.println("Thread Test... " + value);
}
};
String value = "Objects...";
Delay thread = new Delay();
thread.set(value);
thread.start();
System.out.println("Thread Start...");
System.out.println();
}
}
Talvez seja mais simples…
Valeu eduveks, to tentando adaptar o codigo a essa logica q sugeristes. A principio nao funcionou, mas a ideia é otima vou tenta adaptar outras partes do codigo usando thread, pq vai se mais facil separa-las e faze o nogcio funcionar. Valeu denovo, qq resultado ou duvida posto aqui.
Éder.