Erste Schritte Timer: In einem festgelegten Intervall eine Methode ausführen

gezahs

Mitglied
Hallo allerseits,

Auf der Suche nach der Anwendung eines Timers, welcher in einem festgelegten Intervall eine Methode ausführt, bin ich auf der Seite java.util.Timer.schedule(TimerTask task,long delay,long period) Method Example genau auf das gestoßen, was ich benötige:

Java:
import java.util.*;

public class TimerDemo {
   public static void main(String[] args) {
      // creating timer task, timer
      TimerTask tasknew = new TimerSchedulePeriod();
      Timer timer = new Timer();
      
      // scheduling the task at interval
      timer.schedule(tasknew,100, 100);      
   }
   // this method performs the task
   public void run() {
      System.out.println("timer working");      
   }    
}

Wenn ich diesen Code richtig interpretiere, wird in der Main-Klasse ein Timer & TimerTask erstellt, welcher mit einer Verzögerung von 0,1 Sekunden alle 0,1 Sekunden die Run-Methode aufruft.

Perfekt! Einfach genial ... genau das was ich brauche ... wenn es bei mir nur funktionieren würde ...

Nachdem ich das Schema vergeblich versucht habe anzuwenden, habe ich letztlich einfach das ganze kopiert und in meine IDE eingefügt ... um festzustellen dass es trotzdem nicht funktioniern will.

Ich habe es mit Eclipse und Netbeans probiert und bin beim Kompilieren auf folgende Fehler gestoßen:

Eclipse: "Exception in thread "main" java.lang.Error: Unresolved compilation problem: TimerSchedulePeriod cannot be resolved to a type"

Netbeans: "Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous ctor sym type: TimerScheduleTask.<init> at testtimer.TestTimer.main(TestTimer.java:6)"
(Anmerkung: Ich habe natürlich den Namen der Klasse mit der Datei übereingestimmt, hier "testtimer").

Beide IDEs verweisen auf die Zeile 6

Java:
      TimerTask tasknew = new TimerSchedulePeriod();

Bestimmt hänge ich mich nur an einer Kleinigkeit auf ... doch ich sitze nun schon den ganzen Abend an diesem Problem :bloed: und bin auch nach eindringlicher Suche im Netz nicht fündig geworden. Was mache ich bloß falsch?

Ich würde mich über jede Hilfestellung sehr freuen!
 
Die Fehlermeldung sagt doch alles - die Klasse TimerSchedulePeriod ist nicht bekannt (ist also nicht im import von java.util.* enthalten und auch sonst nicht bekannt).
 
😱 - Tatsächlich? Bin ich also auf eine schlechte Quelle im Internet reingefallen?

Danke auf alle Fälle für deine Antwort 😉
 
@TOken
Müsste der Compiler dann nicht direkt im Editierfenster eine Warnung ausgeben und anbieten den Timer zu importieren?
 
Ich würde ändern:
Java:
		TimerTask timerTask = new TimerTask() {
			public void run() {
				// Was immer du machen willst
			}
		};
 
Vielen Dank für die zahlreichen Antworten! Ich bin schlichtweg begeistert, wie aktiv diese Community ist! 🙂 Ich habe leider erst heute Nacht Zeit, daran weiter zu tüfteln.

Nochmal zusammen gefasst:

1. Die Klasse TimerSchedulePeriod scheint es schlichtweg nicht zu geben (Token, Chloroplast)
2. Ich werde mir Galileo Computing :: Java ist auch eine Insel – 14.7 Zeitgesteuerte Abläufe ansehen (Chloroplast)
3. Ich werde den Lösungsansatz von Turtle probieren
 

Zurück
Oben