Thread Interrupt

1 resposta
D

Galera,

estou tentando fazer um contador em java 

[i] [color=“red”]

public void run(){

boolean desligar = true;

while(desligar){

try {

cont=cont+1;

Thread.sleep(1000);

telaCont.setText(""+cont+"");
} catch (Exception e){
       }

{ … }

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    Thread t=new Thread(this);
    t.start();

[/i] [/color]
até aqui tudo lindo maravilhoso … só que ele fica em um laço infinito … e eu tento interromper com um interrupt … só que até agora ñ consegui entender muito bem como fazer …

alguém pode me ajudar ??

[color=“red”]

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

t.interrupt();

}[/color] ?? mais o que …

1 Resposta

P

Devas eu fiz uma implementação rapida para voce ver como faz para parar uma thread o metodo que para a thread esta na classe roda thread apesar da thread rodar na classe tred

public class tred implements Runnable {

private boolean desligar = true;
private int contador = 0;

public void run() {
    try {
        
        while (isDesligar())
        {
            Thread.sleep(10);
            setContador(getContador() + 1);
        }
    } catch (InterruptedException ex) {
        ex.printStackTrace();
    }
}



public boolean isDesligar() {
    return desligar;
}

public void setDesligar(boolean desligar) {
    this.desligar = desligar;
}

public int getContador() {
    return contador;
}

public void setContador(int contador) {
    this.contador = contador;
}

}

public class rodaTred {

private  Thread t;

private tred tr;

/** Creates a new instance of rodaTred */
public rodaTred() {
    
    tr = new tred();
    Thread t = new Thread(tr);
    t.start();
    
    while(tr.getContador() < 1000)
    {
        if (tr.getContador() % 100 == 0)
            System.out.println(tr.getContador());
    }
    stop();
    
    
}
public void stop()

{

System.out.println(a thread vai parar);

t = null;

System.out.println(a thread parou);

}

}

o metodo em negrito é o metodo responsavel pela parada, veja que eu setei a variavel que cuida da thread como null, se precisar de mais detalhes pq eu fiz assim olhe no seguinte endereço

http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html

Criado 29 de março de 2007
Ultima resposta 4 de abr. de 2007
Respostas 1
Participantes 2