Storitev ScriptForge.Timer

Storitev Timer meri pretečeni čas ob izvajanju uporabniških skriptov.

Timer meri trajanje. Lahko je:

Ikona namiga

Trajanja so izražena v sekundah z natančnostjo 3 decimalk (t.j. milisekunde). Vrednost trajanja 12,345 pomeni 12 sekund in 345 milisekund


Priklic storitve

Pred uporabo storitve Timer je potrebno naložiti ali uvoziti knjižnico ScriptForge:

note

• Za makre Basic mora biti naložena knjižnica ScriptForge z naslednjim ukazom:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Za skripte Python mora biti opravljen uvoz iz modula scriptforge:
from scriptforge import CreateScriptService


V Basicu

Spodnji primer ustvari predmet Timer z imenom myTimer in ga nemudoma sproži.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Časovnik (Timer) se zažene takoj, ko je drugi argument = True, privzeto = False
  

Priporočamo, da po uporabi sprostite vire:


    Set myTimer = myTimer.Dispose()
  
V Pythonu

    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  

Lastnosti

Ime

Samo za branje

Vrsta

Opis

Duration

Da

Double

Dejansko pretečeni čas izvajanja od začetka oz. med začetkom in koncem (ne vključuje trajanja morebitnih vmesnih zaustavitev).

IsStarted

Da

Boolean

True, če je merilnik časa zagnan ali začasno ustavljen.

IsSuspended

Da

Boolean

True, če je merilnik časa zagnan in začasno ustavljen.

SuspendDuration

Da

Double

Dejansko pretečeni čas med začasno ustavitvijo ali od začetka do konca.

TotalDuration

Da

Double

Dejansko pretečeni čas od začetka ali od začetka in konca (vključno začasne zaustavitve in pretekli čas)


Ikona namiga

Upoštevajte, da je lastnost TotalDuration ekvivalentna vsoti lastnosti Duration in SuspendDuration.


Metode

Vse metode ne zahtevajo argumentov in vrnejo (logično) vrednost Boolean.

Če je vrnjena vrednost False, se ni zgodilo nič.

Ime

Opis

Vrnjena vrednost

Continue

Vključi časomer Timer, če je zaustavljen.

False, če časomer ni zaustavljen.

Restart

Ustavi časomer Timer, opusti trenutne vrednosti lastnosti in ponovno zažene kot novi časomer Timer.

False, če je časomer nedejaven.

Start

Zažene nov časomer.

False, če je časomer že zagnan.

Suspend

Začasno zaustavi tekoči časomer.

False, če časomer ni zagnan ali je že zaustavljen.

Terminate

Ustavi tekoči časomer.

False, če časomer sploh ni zagnan niti ni začasno zaustavljen.


Primer:

Spodnji primeri v Basicu in Pythonu ilustrirajo rabo metod in lastnosti iz storitve Timer.

V Basicu

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Pretečeni čas, odkar je pogovorno okno odprto, bo šteto kot čas prekinitve
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Pretečeni čas, odkar je pogovorno okno odprto, bo šteto kot čas delovanja
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Pokaže končne meritve časa
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Če kličete metodo Terminate, nadaljnji klici metode Continue ne bodo nadaljevali z merjenjem časa. Podobno po ustavitvi časomera Timer ga klic metode Start ponovno zažene, kot da gre za nov časomer Timer.


V Pythonu

    from time import sleep
    bas = CreateScriptService("Basic")
    myTimer.Start()
    sleep(0.5)
    myTimer.Suspend()
    bas.MsgBox("{} {} {}".format(myTimer.Duration, myTimer.SuspendDuration, myTimer.TotalDuration))
    myTimer.Continue()
    sleep(0.5)
    bas.MsgBox("{} {} {}".format(myTimer.Duration, myTimer.SuspendDuration, myTimer.TotalDuration))
    myTimer.Terminate()
    bas.MsgBox("{} {} {}".format(myTimer.Duration, myTimer.SuspendDuration, myTimer.TotalDuration))
  
note

Bodite pozorni, saj funkcija Wait v jeziku BASIC za trajanje sprejme argument v milisekundah, medtem ko funkcija sleep v Pythonu za svoje argumente uporablja sekunde.


Delo z več časomeri

Možno je zagnati več vzporednih časomernih storitev Timer, kar omogoča zelo prilagodljivo merjenje časa v različnih delih kode.

Naslednji primer ilustrira izdelavo dveh časomernih predmetov Timer in njun ločen zagon.

V Basicu

    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Zažene časomer myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Zažene časomer myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Ukine oba časomera
    myTimerA.Terminate()
    myTimerB.Terminate()
  
V Pythonu

    from time import sleep
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    myTimerA.Start()
    sleep(1)
    bas.MsgBox("{} {}".format(myTimerA.Duration, myTimerB.Duration))
    myTimerB.Start()
    sleep(1)
    bas.MsgBox("{} {}".format(myTimerA.Duration, myTimerB.Duration))
    myTimerA.Terminate()
    myTimerB.Terminate()
  
warning

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!