Dienst ScriptForge.Timer

Der Dienst Timer misst die Zeit, die zum Ausführen von Benutzerskripten benötigt wird.

Timer misst die Dauer. Es kann sein:

Tippsymbol

Die Dauer wird in Sekunden mit einer Genauigkeit von 3 Dezimalstellen (Millisekunden) ausgedrückt. Ein Wert von 12,345 bedeutet 12 Sekunden und 345 Millisekunden


Dienstaufruf

Vor der Verwendung des Dienstes Timer muss die Bibliothek ScriptForge geladen oder importiert werden:

note

• Grundlegende Makros erfordern das Laden der Bibliothek ScriptForge mit der folgenden Anweisung:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-Skripte erfordern einen Import aus dem Modul scriptforge:
from scriptforge import CreateScriptService


In Basic

Das folgende Beispiel erstellt ein Objekt Timer namens myTimer und startet es sofort.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    ' Der Timer startet sofort, wenn das zweite Argument "True" ist, Standard = False
  

Es wird empfohlen, Ressourcen nach der Verwendung freizugeben:


    Set myTimer = myTimer.Dispose()
  
In Python

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

Eigenschaften

Name

Schreibgeschützt

Typ

Beschreibung

Duration

Ja

Double

Die tatsächliche Laufzeit, die seit dem Start oder zwischen Start und Stopp verstrichen ist (unterbrochene Zeit wird nicht berücksichtigt)

IsStarted

Ja

Boolean

True, wenn der Timer gestartet oder angehalten wird

IsSuspended

Ja

Boolean

True wenn der Timer gestartet und angehalten wird

SuspendDuration

Ja

Double

Die tatsächlich verstrichene Zeit während der Unterbrechung, seit dem Start oder zwischen Start und Stopp

TotalDuration

Ja

Double

Die tatsächlich verstrichene Zeit seit dem Start oder zwischen Start und Stopp (einschließlich Unterbrechungen und Laufzeit)


Tippsymbol

Beachten Sie, dass die Eigenschaft TotalDuration der Summierung der Eigenschaften Duration und SuspendDuration entspricht.


Methoden

Alle Methoden benötigen keine Argumente und geben einen booleschen Wert zurück.

Wenn der zurückgegebene Wert False ist, ist nichts passiert.

Name

Beschreibung

Zurückgegebener Wert

Continue

Setzt den Timer fort, wenn er angehalten wurde

False, wenn der Timer nicht angehalten wurde

Restart

Beendet den Timer, verwirft seine aktuellen Eigenschaftswerte und startet als neuer Timer neu

False wenn der Timer inaktiv ist

Start

Startet einen neuen Timer

False wenn der Timer bereits gestartet ist

Suspend

Unterbricht einen laufenden Timer

False, wenn der Timer nicht gestartet oder bereits angehalten wurde

Terminate

Stoppt einen laufenden Timer

False wenn der Timer weder gestartet noch angehalten ist


Beispiel:

Die folgenden Beispiele in Basic und Python veranschaulichen die Verwendung der Methoden und Eigenschaften im Dienst Timer.

In Basic

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    ' Die verstrichene Zeit, während der Dialog geöffnet war, wird als unterbrochene Zeit gezählt
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    ' Die verstrichene Zeit, während der Dialog geöffnet war, wird als Laufzeit gezählt
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    ' Zeigt die letzten Zeitmessungen
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Wenn Sie die Methode Terminate aufrufen, setzen nachfolgende Aufrufe der Methode Continue die Zeitmessung nicht fort. In ähnlicher Weise wird ein Timer, nachdem er beendet wurde, durch Aufrufen der Methode Start neu gestartet, als wäre er ein neuer Timer.


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

Beachten Sie, dass die Funktion Wait in BASIC ein Dauerargument in Millisekunden akzeptiert, während die Funktion sleep in Python Sekunden in ihrem Argument verwendet.


Arbeiten mit mehreren Timern

Es ist möglich, mehrere Dienste Timer parallel zu instanziieren, wodurch die Zeit in verschiedenen Teilen des Codes flexibel gemessen werden kann.

Das folgende Beispiel veranschaulicht, wie zwei Objekte Timer erstellt und separat gestartet werden.

In Basic

    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    ' Startet myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Startet myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Beenden Sie beide Timer
    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-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.


Bitte unterstützen Sie uns!