nchristoph
Erfahrenes Mitglied
Hallo,
ich versuche mich gerade in Threads und komme einfach nicht weiter.
scheduleAtFixedRate läuft ja bis zum Sankt Nimmerleins Tag.
Ich suche jetzt eine möglichkeit, um einen Thread nur solange auszuführen, wie die Methode ausgeführt wird.
Geht sowas überhaupt in Java?
Momentan wird der Thread immer wieder von neuem ausgeführt anstatt nach der Zerstörung des Objects beendet zu werden.
Kann mir jemand helfen?
ich versuche mich gerade in Threads und komme einfach nicht weiter.
Java:
public void checkForItvDespawn(CreatureObject actor, SWGObject object){
if(object == null){
Thread.currentThread().interrupt();
return;
}
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
public void run() {
try {
if(object == null){
Thread.currentThread().interrupt();
return;
}
if (actor.getPosition().getDistance2D(object.getPosition()) >= 50){
core.objectService.destroyObject(object.getObjectID());
actor.sendSystemMessage("@travel:pickup_cancel", DisplayType.Broadcast);
Thread.currentThread().interrupt();
return;
}
long oldtime = System.currentTimeMillis();
if(System.currentTimeMillis() - oldtime >= 60000){
core.objectService.destroyObject(object.getObjectID());
actor.sendSystemMessage("@travel:pickup_timeout", DisplayType.Broadcast);
Thread.currentThread().interrupt();
}
}catch (Exception e) {
e.printStackTrace();
}
}
}, 1, 10, TimeUnit.SECONDS);
return;
}
scheduleAtFixedRate läuft ja bis zum Sankt Nimmerleins Tag.
Ich suche jetzt eine möglichkeit, um einen Thread nur solange auszuführen, wie die Methode ausgeführt wird.
Geht sowas überhaupt in Java?
Momentan wird der Thread immer wieder von neuem ausgeführt anstatt nach der Zerstörung des Objects beendet zu werden.
Kann mir jemand helfen?