Ik heb een thread met daarin een Timer object, en ik wil dat dit Timer object wordt uitgevoerd terwijl de Thread blijft draaien. Wat er nu gebeurt is namelijk dat de Thread stopt omdat hij klaar is met run(), en daarna wordt de Timer nog actief.
Voorbeeld code:
Ik neem ook aan dat de actie van de Timer (de output) dan ook niet in de thread wordt gedaan, maar in het object "task". De taskThread.isAlive() geeft ook aan dat de thread niet meer draait.
Hoe zorg ik ervoor dat de thread blijft wachten tot de Timer ook klaar is. Met deze Timer zou dat dus nooit zijn.
Voorbeeld code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| // Het programma: Task task = new Task(); Thread taskThread = new Thread(task); taskThread.start(); // De Task klasse: public class Task implements Runnable { public void run () { javax.swing.Timer timer; timer = new javax.swing.Timer(5000, this); timer.setInitialDelay(5000); timer.setRepeats(true); timer.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { System.out.println("Dit komt nadat de thread al klaar is"); } }); timer.start(); System.out.println("We zijn meteen klaar met deze thread."); } } |
Ik neem ook aan dat de actie van de Timer (de output) dan ook niet in de thread wordt gedaan, maar in het object "task". De taskThread.isAlive() geeft ook aan dat de thread niet meer draait.
Hoe zorg ik ervoor dat de thread blijft wachten tot de Timer ook klaar is. Met deze Timer zou dat dus nooit zijn.