ScriptForge.Timer tjeneste

Tjenesten Timer måler hvor lang tid det tar å kjøre brukerskript.

En Timer måler varigheter. Som kan være:

Tipsikon

Varighetene er uttrykt i sekunder med en presisjon på 3 desimalsiffer (millisekunder). En varighetsverdi på 12,345 betyr 12 sekunder og 345 millisekunder


Tjenestepåkallelse

Før du bruker Timer-tjenesten, må ScriptForge-biblioteket lastes eller importeres:

note

• Grunnleggende makroer krever å laste ScriptForge-biblioteket ved hjelp av følgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService


I Basic

Eksemplet nedenfor oppretter et Timer-objekt kalt myTimer og starter det umiddelbart.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Telleren starter umiddelbart når det andre argumentet = Sann, default = Usann
  

Det anbefales å frigjøre ressurser etter bruk:


    Set myTimer = myTimer.Dispose()
  
I Python

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

Egenskaper

Navn

Skrivebeskyttet

Type

Beskrivelse

Duration

Ja

Double

Den faktiske kjøretiden som har gått siden start eller mellom start og stopp (tar ikke med i suspendert tid)

IsStarted

Ja

Boolean

Sann når tidtakeren er startet eller suspendert

IsSuspended

Ja

Boolean

Sann når tidtakeren er startet og suspendert

SuspendDuration

Ja

Double

Den faktiske tiden som har gått mens den er suspendert siden start eller mellom start og stopp

TotalDuration

Ja

Double

Den faktiske tiden som har gått siden start eller mellom start og stopp (inkludert suspensjoner og kjøretid)


Tipsikon

Merk at egenskapen TotalDuration tilsvarer å summere egenskapene Duration og SuspendDuration.


Metoder

Alle metoder krever ikke argumenter og returnerer en boolsk verdi.

Hvis den returnerte verdien er Usann, har ingenting skjedd.

Navn

Beskrivelse

Returnert verdi

Continue

Gjenopptar Timeren hvis den har blitt suspendert

Usann hvis tidtakeren ikke er suspendert

Restart

Avslutter Timeren og forkaster gjeldende egenskapsverdier, og starter på nytt som en ny ren Timer

Usann hvis tidtakeren er inaktiv

Start

Starter en helt ny timer

False hvis tidtakeren allerede er startet

Suspend

Suspenderer en løpende timer

Usann hvis tidtakeren ikke er startet eller allerede er suspendert

Terminate

Stopper en løpende timer

Usann hvis tidtakeren verken er startet eller suspendert


Eksempel:

Eksemplene nedenfor i Basic og Python illustrerer bruken av metodene og egenskapene i Timer-tjenesten.

I Basic

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Tiden som har gått mens dialogboksen er åpen, vil bli regnet som suspendert tid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Tiden som har gått mens dialogboksen er åpen, vil bli regnet som kjøretid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Viser de siste tidsmålingene
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Hvis du kaller Terminate-metoden, vil ikke påfølgende kall for Fortsett-metoden gjenoppta tidsmålingen. På samme måte, etter at en tidtaker er avsluttet, vil roping av Start-metoden starte den på nytt som om den var en helt 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

Vær oppmerksom på at Wait-funksjonen i BASIC tar inn et varighetsargument i millisekunder, mens sleep-funksjonen i Python bruker sekunder i argumentet.


Arbeid med flere timere

Det er mulig å instansiere flere Timer-tjenester parallelt, noe som gir fleksibilitet i måling av tid i ulike deler av koden.

Følgende eksempel illustrerer hvordan du oppretter to Timer-objekter og starter dem 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
    «Avslutt begge tidtakerne
    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 Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.


Supporter oss!