Service ScriptForge.Timer

De service Timer meet de hoeveelheid tijd die nodig is om gebruikersscripts uit te voeren.

Een Timer meet de tijdsduur. Het kan zijn:

Tippictogram

De tijdsduur wordt uitgedrukt in seconden met een precisie van 3 decimalen (milliseconden). Een waarde van 12.345 betekent 12 seconden en 345 milliseconden


Service aanroep

Voordat de service Timer gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geĆÆmporteerd:

note

ā€¢ Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

ā€¢ Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService


In BASIC

Het onderstaande voorbeeld maakt een object Timer met de naam myTimer en start het onmiddellijk.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'De timer start onmiddellijk wanneer het tweede argument = True, standaard = False
  

Het wordt aanbevolen om na gebruik middelen vrij te maken:


    Set myTimer = myTimer.Dispose()
  
In Python

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

Eigenschappen

Name

AlleenLezen

Type

Beschrijving

Duration

Ja

Double

De werkelijke looptijd die is verstreken sinds de start of tussen start en stop (houdt geen rekening met opgeschorte tijd)

IsStarted

Ja

Boolean

Waar indien de timer wordt gestart of onderbroken

IsSuspended

Ja

Boolean

True indien de timer wordt gestart en onderbroken

SuspendDuration

Ja

Double

De werkelijke verstreken tijd tijdens de onderbreking sinds de start of tussen start en stop

TotalDuration

Ja

Double

De werkelijke verstreken tijd sinds start of tussen start en stop (inclusief schorsingen en looptijd)


Tippictogram

Merk op dat de eigenschap TotalDuration gelijk is aan het optellen van de eigenschappen Duration en SuspendDuration.


Methoden

Alle methoden hebben geen argumenten nodig en retourneren een booleaanse waarde.

Als de geretourneerde waarde False is, is er niets gebeurd.

Name

Beschrijving

Geretourneerde waarde

Continue

Hervat de Timer als deze is onderbroken

False als de timer niet is onderbroken

Restart

Beƫindigt de Timer en verwijdert de huidige eigenschapswaarden, herstart als een nieuwe schone Timer

False als de timer inactief is

Start

Start een nieuwe timer

False als de timer al is gestart

Suspend

Onderbreekt een lopende timer

False als de timer niet is gestart of al is onderbroken

Terminate

Stopt een lopende timer

False als de timer niet is gestart of onderbroken


Voorbeeld:

De onderstaande voorbeelden in Basic en Python illustreren het gebruik van de methoden en eigenschappen in de service Timer.

In BASIC

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'De tijd die is verstreken terwijl het dialoogvenster open is, wordt geteld als onderbroken tijd
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'De tijd die is verstreken terwijl het dialoogvenster open is, wordt geteld als looptijd
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Toont de laatste tijdmetingen'
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Als u de methode Terminate aanroept, wordt de tijdmeting niet hervat bij volgende aanroepen van de methode Continue. Evenzo, nadat een Timer is beƫindigd, zal het aanroepen van de methode Start deze herstarten alsof het een nieuwe Timer is.


In 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

Pas op dat de functie Wait in Basic een argument voor tijdsduur in milliseconden opneemt, terwijl de functie sleep in Python seconden in zijn argument gebruikt.


Werken met meerdere timers

Het is mogelijk om meerdere services Timer parallel te instantiƫren, wat flexibiliteit geeft bij het meten van tijd in verschillende delen van de code.

Het volgende voorbeeld illustreert hoe u twee Timer-objecten kunt maken en deze afzonderlijk kunt starten.

In BASIC

    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Start myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Start myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Beƫindig beide timers
    myTimerA.Terminate()
    myTimerB.Terminate()
  
In 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-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.


Help ons, alstublieft!