Dúvida com métodos wait e notifyAll

4 respostas
D

Olá!

Preciso de um método que paralize a execução de um programa, e possa desparalizar e continuar do ponto onde parou se pressionada uma tecla “continuar”.

Dei uma olhada aqui no fórum, e ví no tópico http://www.guj.com.br/posts/list/52663.java#277300 uma possível solução. Acontece que estou tentando implementar esta solução, e devido ao meu pouco conhecimento da linguagem Java, encontro várias dificuldades para solucionar o problema do wait e notifyAll.

Meu código:

} else if (command.equals("PAUSAR")){ synchronized (this) {while(pausado){ wait(); } } public synchronized void setPausado(boolean pausado){ this.pausado = pausado; if (!pausado) notifyAll(); }

Estou usando a IDE Eclipse 3.2 (Windows) e ele sublinha setPausado dizendo que Void é um tipo inválido para esta variável. (?)

Qualquer ajuda será muito benvinda.

Obrigado.

4 Respostas

_fs

Pelo que percebi você está tentando declarar um método dentro de outro método.

D

Nossa! É verdade!

O que estou fazendo agora é uma classe que contenha esses métodos.

Agora, como posso utiliza-la dentro do bloco da condição “else if”?

} else if (command.equals("PAUSAR")){

Obrigado.

D

Desfiz tudo e refiz de uma forma bem mais fácil e funcional:

if (pausar){
				try {
					Thread.sleep(1500);
				} catch (Exception e) {

				}

Apliquei este comando a uma classe de controle e pronto!

Obrigado!

ViniGodoy

Só tem um problema. O Thread.sleep() não vai acordar num notifyAll().

Criado 16 de outubro de 2007
Ultima resposta 18 de out. de 2007
Respostas 4
Participantes 3