Java "Огонь и забудь" Тема - PullRequest
       35

Java "Огонь и забудь" Тема

0 голосов
/ 09 декабря 2011

У меня есть метод

public static void startAnimation() {
    new AnimationThread().run();
}

где AnimationThread реализует runnable, а его конструктор:

public AnimationThread() {
    new Thread(this, "Animation Thread");
    EventQueue.setAnimationCounter(0);
    alive = true;
}

, который я вызываю из метода init () апплета, зависает, поскольку он никогда не возвращает значение. Есть ли способ запустить этот поток и завершить метод init (), чтобы мой апплет запустился!

Спасибо

Ответы [ 2 ]

4 голосов
/ 09 декабря 2011

Вам нужно немного передвинуть вещи:

public AnimationThread() {
   EventQueue.setAnimationCounter(0);
   alive = true;
   new Thread(this, "Animation Thread").start();
}

public static void startAnimation() {
   new AnimationThread();
}

start() - это волшебный Thread метод, который запускает код в другом потоке;AnimationThread конструктор вернется нормально после вызова, AnimationThread.run() будет выполнен в новом потоке.

2 голосов
/ 09 декабря 2011

Возможно, вам следует вызвать метод start вместо метода run.Только start метод действительно выполняет новый поток.

...