Thread neu starten

MrDude

Mitglied
Hallo,

ich programmiere eine Art Snake nach und habe folgendes Problem.

Trifft sich dich schlange selber wird die bool Variable auf false gesetzt.
Siehe Code.


Hinzu habe ich eine Funktion reset. Dieses setzt lebt auf true und ruft this.start(); auf.


Code:
public void run()
	{
		while(lebt)
		{
			try
			{
				Thread.sleep((long)(750/this.geschwindigkeit));
			}
			catch(InterruptedException ie)
			{
				System.out.println("Exception in Schlange/run aufgetreten");
			}	
			this.bewegen();
		}
	}
Leider tritt dann folgender Fehler auf:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
at java.lang.Thread.start(Unknown Source)
at snake.Schlange.reset(Schlange.java:32cool
at snake.Fenster$MyActionListener.actionPerformed(Fenster.java:136)


Und so weiter eben.

Kann mir jemand sagen, wieso ich einen Thread nicht ein zweites mal starten darf oder ob ich etwas ändern muss?!


Vielen Dank im voraus.


TIM smile
 
Hallo,

siehe The Life Cycle of a Thread
Wenn die run Methode verlassen wird nimmt der Thread den Zustand "dead" ein,
und aus dem führt keine Transition wieder heraus.

Du musst, afaik dir ein neues Thread Objekt erstellen und dann nochmal start
aufrufen...

Gruß,

RedWing
 
Zurück