1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

mehrere (gleiche) Timertasks gleichzeitig abarbeiten

  • Hannes
  • 8. Oktober 2006 um 17:24
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Hannes
    Punkte
    105
    Beiträge
    14
    • 8. Oktober 2006 um 17:24
    • #1

    Hallo!

    Ich würde gerne immer wenn ein bestimmtes Event auftritt, um sagen wir 5 Minuten verzögert einen TimerTask starten. Mein Problem dabei ist, dass immer der als letzter gestartete Task den vorherigen anscheinend abbricht. Ich würde aber gerne alle parallel ablaufen lassen. Muss ich da irgendwas spezielles beachten? Oder geht das überhaupt nicht?

    Jetzt schon mal einen großen Dank für die Hilfe!

    falls es hilft, hier ein kleiner Code-Auszug:

    Timer timer = new Timer();
    Calendar kEvent = Calendar.getInstance();

    public void isEvent(Event e) {
    this.kEvent = Calendar.getInstance();
    kEvent.setTimeInMillis(kEvent.getTimeInMillis()+ 60000);
    Date dt = new Date();
    dt = kEvent.getTime();
    timer.schedule(new checkK(), dt);
    }

    class checkK extends TimerTask{
    public void run(){
    long m = kEvent.getTimeInMillis();
    ...
    try{
    ...
    timer.cancel();
    timer = new Timer();
    }
    catch(Exception e){
    ...
    }
    }
    }

  • Swoncen
    Punkte
    5.331
    Beiträge
    993
    • 8. Oktober 2006 um 19:02
    • #2

    Ich hab noch nie mit Timern in Java gearbeitet, aber ich nehm an die Methode "run" ist mit "onTimer()" aus der WINAPI ident. Von daher fällt mir auf, dass der Timer global ist und du den aktuellen Event immer mit cancel() abbrichst und neu initialisierst. Als Lösung könntest du ja ein Array, oder eine Liste an Timer-Instanzen bereitstellen, und neue Events einfach durch einen neuen Timer starten.

  • sauzachn
    Punkte
    3.101
    Beiträge
    606
    • 8. Oktober 2006 um 23:37
    • #3

    Warum nicht mit Threads arbeiten? Das scheint doch genau ein Einsatz für sie zu sein.

  • Lord Binary
    Punkte
    3.301
    Beiträge
    647
    • 9. Oktober 2006 um 00:06
    • #4

    Welche Timer sind denn überahupt gemeint/genutzt ?
    java.util.Timer ?
    Quartz ?
    Eigene Timer Klasse ?

    [Edit]
    Der Code sieht stark nach Java.util.Timer aus, diese Angabe hätte trotzdem ned geschadet
    [/Edit]

    Meine Empfehlung: Quartz verwenden :)

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum