Tjenesten ScriptForge.Timer (stopur)

Tjenesten Timer (stopur) mÄler den tid, det tager at kÞre brugerscripts.

En Timer MÄler varigheder. Det kan vÊre:

Tipikon

Varigheder udtrykkes i sekunder med en prÊcision pÄ 3 decimalcifte (tusindedele af et sekund). En varighed pÄ 12,345 betyder 12 sekunder og 345 tusindedele


Kald af tjeneste

I Basic

Eksemplet herunder opretter et Timer (stopur)-objekt kaldet myTimer (mit stopur) og starter det Ăžjeblikkeligt.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'The timer starts immediately when the second argument = True, default = False
  

Det anbefales at frigĂžre ressourcer efter brug:


    Set myTimer = myTimer.Dispose()
  
I Python

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

Egenskaber

Navn

Readonly (skrivebeskyttet)

Type (type)

Beskrivelse

Duration

Yes (ja)

Double

Den faktisk lÞbende tid, der er gÄet fra start eller mellem start og stop (medregner ikke tid under pauser)

IsStarted

Yes (ja)

Boolean

True (sand), nÄr timeren er startet eller eller pÄ pause

IsSuspended

Yes (ja)

Boolean

True (sand), nÄr timeren er startet eller pÄ pause

SuspendDuration

Yes (ja)

Double

Den faktiske tid under pauser siden start eller mellem start og stop

TotalDuration

Yes (ja)

Double

Den faktiske tid, der er gÄet efter start eller mellem start og stop (medregnet pauser og lÞbende tid)


Tipikon

Note that the TotalDuration property is equivalent to summing the Duration and SuspendDuration properties.


Metoder

Ikke alle metoder krĂŠver argumenter og returnerer en Boolean (Boolsk) vĂŠrdi.

Hvis den returnerede vĂŠrdi er False (falsk), er der ikke sket noget.

Navn

Beskrivelse

Returned value (returneret vĂŠrdi)

Continue

Genoptager Timeren, hvis den har vĂŠret stoppet

False (falsk), hvis timeren ikke er pÄ pause

Restart

Afslutter Timeren og kasserer dens aktuelle egenskabsvĂŠrdier, mens den genstartes som en ny, ren Timer

False (falsk), hvis timeren er deaktiveret

Start

Starter en ny, ren timer

False (falsk), hvis timeren allerede er startet

Suspend

SÊtter en lÞbende timer pÄ pause

False (falsk), hvis timeren ikke er startet eller allerede er sat pÄ pause

Terminate

Stopper en lĂžbende timer

False (falsk), hvis timeren hverken er startet eller sat pÄ pause


Eksempel:

Eksemplerne herunder i Basic og Python illustrerer brugen af mtoder og egenskaber i tjenesten Timer (tidstager).

I Basic

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Tiden, der gÄr, mens dialogfeltet er Äbent, regnes som pausetid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Tiden, der gÄr, mens dialogfeltet er Äbent, regnes som lÞbende tid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Viser den endelige tidstagning
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Hvis du kalder metoden Terminate (afslut) og efterfĂžlgende kalder metoden Continue (fortsĂŠt) fortsĂŠttes tidtagningen ikke. Hvis du ligeledes kalder metoden Start, efter at en timer er afsluttet, genstartes den, som om den var en ren, ny timer.


I Python

    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

Husk, at funktionen Wait ()vent i Basic tager imod et varigheds-argument i millisekunder, mens funktionen sleep (sov) i Python bruger sekunder i sit argument.


Arbejde med flere timere

Det er muligt at instantiere flere forekomster af tjenesten Timer (stopur) parallelt, hvad der giver fleksibilitet i tidtagningen i forskellige dele af koden.

Det fĂžlgende eksempel illustrerer, hvor der oprettes forekomster af objektet Timer (stopur) og startes separat.

I Basic

    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Starter myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Starter myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Afslutter begge timere
    myTimerA.Terminate()
    myTimerB.Terminate()
  
I Python

    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

Alle ScriptForge Basic-rutiner eller identifikatorer, der er indledet med et understreget tegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.