Hallo Leute,
hab mal wieder ein Problem das ich nich lösen kann:
Exception in thread "Thread-6" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at GamePanel.moveObjects(GamePanel.java:370)
at GamePanel.run(GamePanel.java:430)
at java.lang.Thread.run(Unknown Source)
Das ist die Exception die ich bekomme. Das komische daran ist dass ich sie einmal schon nach 5 Sek und einmal erst nach 2 min Spielzeit bekomme. hab mal nachgegoogelt und da steht, dass versucht wird von der Hashtable gleichzeitig zu schreiben und davon zu lesen.
Hat jemand ne Idee wie ich das verhindern könnte ohne den Spielverlauf zu stören?
hier noch die zugehörigen Codezeilen:
und:
hab mal wieder ein Problem das ich nich lösen kann:
Exception in thread "Thread-6" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at GamePanel.moveObjects(GamePanel.java:370)
at GamePanel.run(GamePanel.java:430)
at java.lang.Thread.run(Unknown Source)
Das ist die Exception die ich bekomme. Das komische daran ist dass ich sie einmal schon nach 5 Sek und einmal erst nach 2 min Spielzeit bekomme. hab mal nachgegoogelt und da steht, dass versucht wird von der Hashtable gleichzeitig zu schreiben und davon zu lesen.
Hat jemand ne Idee wie ich das verhindern könnte ohne den Spielverlauf zu stören?
hier noch die zugehörigen Codezeilen:
Code:
private void moveObjects(){
for (Movable mov:actors){ //Aufruf für jedes Movable-Interface in actors
mov.move(delta); //move aufrufen mit Übergabe delta
}
}
und:
Code:
public void run(){
while(game_running){
computeDelta();
if(isStarted()){
checkKeys();
doLogic(); [b]//Aufruf der doLogic-Methode[/b]
moveObjects(); [b]//Aufruf der moveObjects-Methode[/b]
}
repaint();
try{
Thread.sleep(10); //Thread wird immer für jeweils 10 Millisekunden schlafen gelegt,
//damit andere Prozesse nicht zu kurz kommen
}
catch (InterruptedException e){} //Exception wird abgefangen aber nicht darauf reagiert
}
}