Timer
-
Hi
eigentlich will ich was ganz einfaches:
"irgendetwas" soll in ms von 0 bis zu einer definierten Endzeit zählen.
die aktuelle (gezählte Zeit) will ich dann mit zeiten vergleichen die in einer liste stehen, etwa so:Zeit = .... // Zeitzähler in ms
if Zeit = ListeDerZeitEinträge[i] Then ...
Da gibts ja diesen tollen Timer:
Timer timer = new Timer(true)
timer.scheduleAtFixedRate(new myTask(), firstTime, period)Dumm nur das ich in der neuen KLasse "myTask" dann keine Möglichkeit habe die aktuelle "Zählzeit" abzufragen und somit zu vergleichen.Aber irgendwie muss doch da was zu machen sein ???
Wie kann man das sonst lösen ? irgendne Art Zähler wird es doch wohl geben. Jede mir bekannte Progsprache hat sowas. Hoffe ihr könnt mir helfen.Thx.
pain
-
weiss nicht genau, was du nun machen möchtest, vielleicht gibst du ein beispiel von einer Dir bekannten Sprache an, die sowas kann
Vielleicht könnte Dir das Observerpattern weiterhelfen... wie gesagt, ich hab Dein Problem nicht ganz verstanden... ist jetzt nur ein Vorschlag auf das bisschen, was ich verstanden hab
-
Hallo,
schau Dir doch mal die Klasse System und speziell die Methode currentTimeMillis an.
Hiermit:
long startZeit = System.currentTimeMillis();
bekommst Du die Systemzeit in Millisekunden. (Zumindest theoretisch, habe es nicht getestet).
Vielleicht bringts Dir was.
Gruss Michael
-
irgendwie versteht mich hier keiner mehr :-(. Was ich will ist eine elementare Sache jeder Programmiersprache.irgendetwas was Zeit hoch oder runter zählt. Ne Art Stopuhr. Und wenn eine bestimmte Zeit auf der Stopuhr erreicht ist soll was passieren. Zugegeben, Java ist nich wie jede Progsprache. Irgendwie is hier alles komplizierter
Bsp:
Zeit[] // Zeit ist ein Array vom Typ long
Zeit[0] = 400 ms
Zeit[1] = 600 ms// Funktion Stopuhr zählt von 0 bis 1000 ms,
// bei jedem Schleifendurchlauf, also bei 1ms, 2ms, 3ms, 4ms.....999ms,1000ms
// mache folgendes:if aktuelleZählzeitInMs = Zeit[i] then MacheWas();
// Wenn also Zeit[i] = 400 erreicht ist wird MacheWas() aufgerufen
// ebenso bei Zeit[i] = 600um mal ganz dämlich zu formulieren, ich such ne art schleife die in ms zählt!!!
wenn das immer noch nicht klar macht was ich will sagt mir einfach wie ich eine Stopuhr programmiere. da ist genau das drinnen was ich brauchpain
@Michael: das mit den MilliSekunden kenn ich schon. Damit könnte man das auch zur not machen. Allerdings ist diese Lösung sowas von langsam und ineffektiv das ich mich weigere die Umzusetzen. Das geht mit sicherheit einfacherer
-
pain_md schrieb:
irgendwie versteht mich hier keiner mehr :-(. Was ich will ist eine elementare Sache jeder Programmiersprache.irgendetwas was Zeit hoch oder runter zählt. Ne Art Stopuhr. Und wenn eine bestimmte Zeit auf der Stopuhr erreicht ist soll was passieren. Zugegeben, Java ist nich wie jede Progsprache. Irgendwie is hier alles komplizierter
o.O nenn mir eine programmiersprache die das kann, ich kenn keine
-
Dieses Konstrukt, wie du es beschreibt, existiert in keiner mir bekannten Programmiersprache.
Was es gibt sind Timer. Da ein Zähler mit einzubauen sollte ein Leichtes sein.
(siehe http://java.sun.com/docs/books/tutorial/essential/threads/example-1dot3/AnnoyingBeep.java)Wenn du nur eine Stoppuhr willst, warum dann nicht currentTimeMillis() verwenden?
Und das dich hier immer keiner versteht, könnte evtl daran liegen, dass du dich immer sehr verquer ausdrückst.
edit:
das board hat die klammer gefressen
-
@all: Visual Basic (jaja, das viel beschimpfte :-)) kann genau das was ich will standartmäßig! achja, wenn mich nich alles täuscht hab ich in c sowas auch schon mal gemacht.
achja, das mich niemand versteht liegt wirklich an mir (*ascheaufmeinhaupt*), ich denke viel zu kompliziert. und je mehr ich lerne desto komplizierte denke ich. und in letzter zeit habe ich verdammt viel gelernt
@tendor: auf die idee mit dem zähler bin ich dann auch gekommen. allerdings wiederstrebt es mir bei timer.scheduleAtFixedRate(Task, start, intevall) noch nen zähler einzubauen wenn die zahl die ich wissen will doch eigentlich in "intervall" steht. ich gewöhn mir nur grad an sauber und effektiv zu coden und da passt da irgendwie nich so rein, aber egal.Danke jedenfalls an alle
für die viele geduld@Tendor: Danke für das Besipiel. so in etwa hab ichs jetz gelöst. Und dank des besipiels weiss ich jetz auch wie man mehrere klassen in einer Datei "verwaltet". Thx a lot.
pain