Hallo,
ich habe folgende Ausgangslage:
Beim Aufruf der Methode starteTasks() werden alle Tasks gestartet, es laufen also x Threads.
Nun möchte ich zu einem Zeitpunkt einen bestimmten Thread zerstören.
Z.B. tsk[3] soll aus dem Array entfernt werden.
Wie mache ich das am besten?
würde das reichen?
Was, wenn der Thread tsk[3] noch gar nicht gestartet wurde?
Muss ich, nachdem der tsk[3] entfernt wurde auch das Array neu aufbauen und die starteTasks() neu aufrufen?
Das wäre ja nicht gut, denn zu dem Zeitpunkt könnten einige Tasks schon am Laufen sein.
Hat jemand eine Idee?
Danke.
ich habe folgende Ausgangslage:
Code:
class Test
{
Timer timer;
Task[] tsk = new Task[5];
public Test
{
timer = new Timer();
}
public void starteTasks()
{
for (int i=0;i<tsk.lenght;i++)
{
this.timer.schedule(tsk[i], restZeitMill, inter);
}
}
}
class Task extends TimerTask
{
run()
{
// tu was
}
}
Beim Aufruf der Methode starteTasks() werden alle Tasks gestartet, es laufen also x Threads.
Nun möchte ich zu einem Zeitpunkt einen bestimmten Thread zerstören.
Z.B. tsk[3] soll aus dem Array entfernt werden.
Wie mache ich das am besten?
Code:
tsk[3] = null;
Was, wenn der Thread tsk[3] noch gar nicht gestartet wurde?
Muss ich, nachdem der tsk[3] entfernt wurde auch das Array neu aufbauen und die starteTasks() neu aufrufen?
Das wäre ja nicht gut, denn zu dem Zeitpunkt könnten einige Tasks schon am Laufen sein.
Hat jemand eine Idee?
Danke.