Innhold

# ScriptForge.Timer tjeneste

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

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

- Startet, for å indikere når du skal begynne å måle tid.

- Suspendert, for å pause måling av kjøretid.

- Gjenopptatt, for å fortsette å spore kjøretid etter at timeren er suspendert.

- Startet på nytt, noe som vil avbryte tidligere målinger og starte Timeren på null.

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:

• 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)

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

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))

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()

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.

Lignende emner

Nå-funksjon

Timerfunksjon

Supporter oss!