Atraso de tempo sem Thread.sleep

3 respostas
edertp

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.

3 Respostas

eduveks

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…

:wink:

eduveks

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…

edertp

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.

Criado 27 de novembro de 2006
Ultima resposta 28 de nov. de 2006
Respostas 3
Participantes 2