Calcolare il tempo trascorso mediante le funzioni esterne del sub-sistema Timers del API di libglib-2.0
Vai alla navigazione
Vai alla ricerca
Il sotto-sistema Timers della libreria libglib-2.0 fornisce funzioni per tenere traccia del tempo trascorso da un momento iniziale ad uno finale stabiliti dall'utente.
E' possibile ottenere anche una definizione sino al "microsecondo".
Per poter fruire delle risorse del sub-sistema Timers, è necessario richiamare nell'applicazione Gambas la libreria condivisa: "libglib-2.0.so.0.8400.4 ".
Mostriamo un semplice esempio in ambiente grafico:
Private tempus As Pointer
Library "libglib-2.0:0.8400.4"
' GTimer * g_timer_new (void)
' Creates a new timer, and starts timing is implicitly called.
Private Extern g_timer_new() As Pointer
' void g_timer_stop (GTimer *timer)
' Marks an end time.
Private Extern g_timer_stop(GTimer As Pointer)
' gdouble g_timer_elapsed (GTimer *timer, gulong *microseconds)
' Returns the number of seconds elapsed, including any fractional part.
Private Extern g_timer_elapsed(GTimer As Pointer, microseconds As Pointer) As Float
' void g_timer_destroy (GTimer *timer)
' Destroys a timer, freeing associated resources.
Private Extern g_timer_destroy(GTimer As Pointer)
Public Sub Form_Open()
Button1.Text = "Avvia"
Button2.Text = "Tempo trascorso"
End
Public Sub Button1_Click() ' Avvia il conteggio
tempus = g_timer_new()
End
Public Sub Button2_Click() ' Segna l'ultimo conteggio e calcola la differenza con quello iniziale
Dim ms As Long
g_timer_stop(tempus)
Print "Tempo trascorso: "; g_timer_elapsed(tempus, VarPtr(ms))
Print "Lettura dei microsecondi: "; ms
g_timer_destroy(tempus)
End