Executar enquando dorme

olá galera, estou desenvolvendo um game com J2ME, tenho uma tela de loading game para mudar de cenario nela tem uma thread q dorme 3 segundos, eu queria q quando ela estivesse dormindo eu chama-se o metodo da outra classe para mudar o cenario do jeito q estou fazendo, chamando o metodo da outra classe depois q a thread da classe loading game dormiu nao adinta em nada pois ela dorme a toa, como faco para resolver isso ?
Gato.

Seria isso:

public void minhaThreadExec(){
		statusThread = true;
		new Thread(this).start();
		
		while(statusThread){
			try {
				Thread.sleep(1000);
                          enquandoDormeExecuta();
			} catch (Exception e) {
				e.getMessage();
			}
		}

	}

esse enquandoDormeExecuta(); … deveria ser outra thread … assim vc starta essa thread ANTES de chamar a Thread.sleep … assim enquando a enquanto a sua thread dorme … a outra executa

[quote=malves_info]Seria isso:

[code]
public void minhaThreadExec(){
statusThread = true;
new Thread(this).start();

	while(statusThread){
		try {
			Thread.sleep(1000);
                      enquandoDormeExecuta();
		} catch (Exception e) {
			e.getMessage();
		}
	}

}

[/code][/quote]
estou fazendo isso q vc escreveu, entao a operacao nao esta sendo executado quando a thread dorme e sim depois ela dorme entendeu?

Será que assim não funciona?

public void minhaThreadExec(){
    statusThread = true;
    new Thread(this).start();

    while(statusThread){
        try {				
            new Thread(new Runnable() {
                public void run() {
                    enquandoDormeExecuta();
                }
            }).start();
            Thread.yeld();
            Thread.sleep(1000);                          
        } catch (Exception e) {
            e.getMessage();
        }
    }
}

[quote=TangZero]Será que assim não funciona?

[code]
public void minhaThreadExec(){
statusThread = true;
new Thread(this).start();

while(statusThread){
    try {				
        new Thread(new Runnable() {
            public void run() {
                enquandoDormeExecuta();
            }
        }).start();
        Thread.yeld();
        Thread.sleep(1000);                          
    } catch (Exception e) {
        e.getMessage();
    }
}

}
[/code][/quote]
oq Thread.yeld(); faz? nunca vi esse comando t+

Desculpe, é yield().

Ele faz a Thread atual passar a vez para outra Thread processar alguma coisa.

[quote=TangZero]Desculpe, é yield().

Ele faz a Thread atual passar a vez para outra Thread processar alguma coisa.[/quote]
ok kara, vou testar, grato.

[quote=TangZero]Desculpe, é yield().

Ele faz a Thread atual passar a vez para outra Thread processar alguma coisa.[/quote]

Na verdade, esse comando só diz ao SO que é um bom momento de fazer a preempção (passar a vez para outra thread).

E ele não é necessário nessa situação, já que um sleep está sendo dado. O sleep vai colocar a thread em espera, e vai fazer com que o SO passe a vez para outra thread de um jeito ou de outro…

Um bom artigo sobre o assunto é esse aqui:
http://developers.sun.com/mobility/midp/articles/threading2/