Foros del Web » Programación para mayores de 30 ;) » Java »

detener un Hilo

Estas en el tema de detener un Hilo en el foro de Java en Foros del Web. bueno tengo problemas al detener un hilo, estuve leyendo y pues los 3 methodos que se usan para esto estan "Deprecated" entonces vi que la ...
  #1 (permalink)  
Antiguo 30/04/2007, 09:13
Avatar de Asgaroth  
Fecha de Ingreso: abril-2007
Mensajes: 79
Antigüedad: 17 años
Puntos: 4
detener un Hilo

bueno tengo problemas al detener un hilo, estuve leyendo y pues los 3 methodos que se usan para esto estan "Deprecated" entonces vi que la manera de detenerlos era con una variable en true que posteriormente se cambiaria a false y ya esta, ahora tengo el siguiente problema el hilo nos e detiene!!! =(

no entiendo por que es como si se crearan 2 instancias del hilo, por ke pongo a imprimir la variable dentro del ciclo y dentro del methodo que cambia la variable, ademas si entra por que el texto si se cambia a running ( lo entenderan al ver el codigo )

y cuando empieza pss el ciclo imprime true true... luego cuando llamo el methodo que la pone en false, se imprime que si cambio, pero dentro del cilco sigue apareciendo como true, como si fueran variables diferentes.

aqui dejo el codigo aver si alguien me puede ayudar:
Código PHP:

cont
.addKeyListener(new java.awt.event.KeyAdapter() {
                public 
void keyPressed(java.awt.event.KeyEvent e) {
                    
                    
                    if(
e.getKeyCode()==112+getKeys().getSelectedIndex()){
                        
HacerPoder hilo = new HacerPoder();
                        
                        if(
getRun().getText()=="Stopped"){
                            
                            
getRun().setText("Running");
                            
hilo.setPoderes(nAbilities());
                            
hilo.setMiembros(nMembers());
                            
hilo.start();
                        }
                        else {
                            
getRun().setText("Stopped");
                            
                            
                            
hilo.pararAtacar();
                            
                        }
                    }
                }
            }); 
el del hilo:
Código PHP:

import java
.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Robot;
import java.awt.event.InputEvent;

public class 
HacerPoder extends Thread {
    private 
boolean atacar true;

    public 
int miembros 2;

    public 
int poderes 1;

    public 
void setPoderes(int a) {
        
this.poderes a;
    }

    public 
void setMiembros(int a) {
        
this.miembros a;
    }

    public 
void pararAtacar() {
        
this.atacar false;
        
System.out.println("si entro atakar:" this.atacar);
    }
    public 
boolean getAtacar(){
        
System.out.println("wl get:" this.atacar);
        return 
this.atacar;
        
    }

    public 
void run() {
        try {
            
Robot atk = new Robot();

            
int yIni = (int) MouseInfo.getPointerInfo().getLocation().getY();
            
int abilidad 2;
            
int members 1;

            while (
getAtacar()) {
                
System.out.println("en el ciclo:" this.atacar);
                
atk.mousePress(InputEvent.BUTTON3_MASK);
                
atk.delay(1000);
                
atk.mouseRelease(InputEvent.BUTTON3_MASK);
                
atk.delay(300);

                while (
members this.miembros) {

                    
atk.mouseMove((int) MouseInfo.getPointerInfo()
                            .
getLocation().getX(), (int) MouseInfo
                            
.getPointerInfo().getLocation().getY() + 15);

                    
atk.mousePress(InputEvent.BUTTON3_MASK);
                    
atk.delay(1000);
                    
atk.mouseRelease(InputEvent.BUTTON3_MASK);
                    
atk.delay(300);
                    
members++;

                }
                
members 1;
                
atk.mouseMove((int) MouseInfo.getPointerInfo().getLocation()
                        .
getX(), yIni);

                if (
this.poderes != 1) {
                    
cambiarPoder(abilidad);
                    
abilidad++;
                    if (
abilidad this.poderes) {
                        
abilidad 1;
                    }
                }

            }

        } catch (
AWTException e) {
            
// TODO Auto-generated catch block
            
e.printStackTrace();
        }

    }

    public 
void cambiarPoder(int abilidadthrows AWTException {
        
Robot atk = new Robot();

        if (
abilidad <= poderes) {
            
atk.keyPress(48 abilidad);
            
atk.delay(300);
            
atk.keyRelease(48 abilidad);

        }

    }


Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:47.