Služba ScriptForge.Timer

Služba Timer měří dobu, kterou trvá spouštění uživatelských skriptů.

Timer měří dobu trvání. Je možné jej:

Ikona tipu

Doby trvání jsou vyjadřovány v sekundách s přesností na 3 desetinná místa (tj. v milisekundách). Doba trvání 12.345 znamená 12 sekund a 345 milisekund.


Volání služby

Před používáním služby Timer je nutné načíst knihovnu ScriptForge pomocí:


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
  

V níže uvedených příkladech je vytvořen objekt Timer pojmenovaný myTimer a je ihned spuštěn.


    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'The timer starts immediately when the second argument = True, default = False
  

Po použití se doporučuje uvolnit zdroje:


    Set myTimer = myTimer.Dispose()
  
note

Tato služba je plně podporována v jazycích Basic i Python. Všechny příklady jsou uvedeny v programovacím jazyce Basic a lze je snadno převést na Python.


Vlastnosti

Název

Pouze pro čtení

Typ

Popis

Duration

ano

Double

Skutečně uplynulý čas od spuštění nebo mezi spuštěním a zastavením (neuvažuje se čas během pozastavení).

IsStarted

ano

Boolean

True, pokud je měření spuštěno či pozastaveno.

IsSuspended

ano

Boolean

True, pokud je měření spuštěno a zároveň pozastaveno.

SuspendDuration

ano

Double

Čas uplynulý během doby pozastavení měření, a to od spuštění nebo mezi spuštěním a zastavením.

TotalDuration

ano

Double

Čas uplynulý od spuštění nebo mezi spuštěním a zastavením (včetně času pozastavení a času běhu).


Ikona tipu

Note that the TotalDuration property is equivalent to summing the Duration and SuspendDuration properties.


Metody

Žádná metoda nevyžaduje argumenty a každá vrací booleovskou hodnotu.

Je-li návratovou hodnotou False, metoda nic neprovede.

Název

Popis

Návratová hodnota

Continue

Pokračuje v měření, pokud bylo pozastavené.

False, pokud měření pozastaveno nebylo.

Restart

Ukončí měření, zahodí aktuální hodnoty jeho vlastností a restartuje je jako nové, čisté měření.

False, pokud není měření aktivní.

Start

Spustí nové, čisté měření.

False, pokud je měření již spuštěno.

Suspend

Pozastaví běžící měření.

False, pokud není měření spuštěno nebo je již pozastaveno.

Terminate

Zastaví běžící měření.

False, pokud měření není spuštěno ani pozastaveno.


Příklad:


      myTimer.Start()
      Wait 500
      myTimer.Suspend()
      ' Doba uplynulá během otevírání dialogového okna se započítá do pozastaveného času
      MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
      myTimer.Continue()
      Wait 500
      ' Doba uplynulá během otevírání dialogového okna se započítá do času běhu
      MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
      myTimer.Terminate()
      ' Zobrazí výsledné naměřené časy
      MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    
note

Zavoláte-li metodu Terminate, následná volání metody Continue měření času neobnoví. Poté co je měření ukončeno, jej volání metody Start restartuje stejně, jako by se jednalo o nové, čisté měření.


Práce s více měřeními

Je možné vytvořit více instancí služby Timer souběžně, což umožňuje flexibilně měřit čas v různých částech kódu.

Následující příklad ukazuje, jak vytvořit dva objekty služby Timer a odděleně je spustit.


    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    ' Spustí myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Spustí myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Ukončí obě měření
    myTimerA.Terminate()
    myTimerB.Terminate()
  
warning

Všechny procedury nebo identifikátory knihovny ScriptForge, které jsou uvozeny podtržítkem "_", jsou určeny pro interní použití. Není zamýšleno je používat v makrech Basicu.