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!