Indhold
Indholdsfortegnelse 🔎︎

# 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:

- Startet, for at vise, hvornår tidstagningen starter.

- Udsat, pause i målingen af den løbende tid.

- Genoptaget, for at fortsætte målingen af den løbende tid, efter at timeren har været stoppet.

- Genstartet, hvilket vil annullere de tidligere målinger starter Timeren fra nul.

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

Før du bruger tjenesten Timer (stopur) skal biblioteket ScriptForge være hentet ved hjælp af:

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")

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

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

Denne tjeneste er fuldt understøttet i sprogene Basic og Python. Alle eksempler udtrykkes med programmeringssproget Basic og kan let konverteres til Python.

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

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:

          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

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.

## 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.

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

Alle ScriptForge Basic-rutiner eller identifikatorer, som indledes med et understregningstegn "_" er reserveret til internt brug. De er ikke beregnet til brug i Basic-makroer.

Relaterede emner

Funktionen Now (nu)

Funktionen Timer