Wie stoppe ich einen Timer?

  • Ich verstehe die Timer Funktion nicht so ganz glaube ich ..
    Ich habe ein Script OHNE gui in der ich einen Timer benutzen möchte. Ich starte den Timer und frage ihn während das Script läuft in einer Adlib ab.
    Wenn der Timer > 5 Sekunden ist, dann passiert etwas. An dieser stelle brauche ich den Timer nicht mehr und will ihn stoppen/löschen, damit ich ihn noch einmal neu starten kann, WENN er gebraucht wird. Also einfach auf 0 setzen ist blöd.
    Warum gibt es keine Timer-Stop funktion? Die _Timer_KillTimer Funktion will immer eine hwnd haben, die ich nicht liefern kann. Keine Ahnung wofür genau das gebraucht wird ..

    Ich hoffe ihr versteht mein Problem auch ohne das ich den Quellcode poste. Ich will einfach nur wissen wie man den Timer stoppt oder zerstört. :)

    lg
    Leo

  • Ich glaube du hast noch eine falsche Vorstellung davon, was genau TimerInit und TimerDiff intern machen:

    Intern läuft quasi ein einzelner "echter" Timer. Wenn du nun TimerInit() aufrufst, so gibt TimerInit den aktuellen Wert dieses Timers zurück. Wenn du jetzt mit TimerDiff die Zeit ermitteln willst, so nimmt TimerDiff die Differenz des "echten" Timers und dem Wert von TimerInit, was dann die vergangene Zeit ergibt. Das bedeutet es ist absolut korrekt die Variable einfach =0 zu setzen (oder eben erneut var=TimerInit() zu machen).

  • Ah okay :D
    Ich dachte das ist eine extra Funktion die ich quasi mit TimerInit erstelle und die dann eben läuft und dabei Resourcen verwendet (verschwendet wenn nicht gebraucht).
    Also wenn das sowieso etwas ist das läuft, dann hast du natürlich recht. Danke für die Erklärung :)

    • Offizieller Beitrag

    Ich starte den Timer und frage ihn während das Script läuft in einer Adlib ab.

    Auf diese Weise ist der Timer völlig überflüssig!
    Wenn Du eine Funktion mit AdlibRegister aufrufst, dann legst Du die Aufrufhäufigkeit ja mit AdlibRegister fest z.B. alle 250 ms (Standard).
    Willst Du, dass etwas nach beispielsweise 5 Sekunden passiert, so kannst Du einfach eine globale Variable hochzählen und wenn diese >=20 (1 / 4 * 20 = 5) ist, die entsprechenden Befehle ausführen.

  • Auf diese Weise ist der Timer völlig überflüssig!Wenn Du eine Funktion mit AdlibRegister aufrufst, dann legst Du die Aufrufhäufigkeit ja mit AdlibRegister fest z.B. alle 250 ms (Standard).
    Willst Du, dass etwas nach beispielsweise 5 Sekunden passiert, so kannst Du einfach eine globale Variable hochzählen und wenn diese >=20 (1 / 4 * 20 = 5) ist, die entsprechenden Befehle ausführen.

    Hm .. das ist natürlich auch keine schlechte Idee. Daran hab ich noch garnicht gedacht :D
    Danke dafür :)