Differenze tra le versioni di "Calcolare il tempo trascorso mediante le funzioni esterne del sub-sistema Timers del API di GLib"

Da Gambas-it.org - Wikipedia.
Riga 8: Riga 8:
 
   
 
   
 
   
 
   
  Library "libglib-2.0" 'libgio-2.0:0.4002.0"
+
  Library "libglib-2.0"   <FONT Color=gray>' oppure: libgio-2.0</font>
 
   
 
   
 
  <FONT Color=gray>' ''GTimer * g_timer_new (void)''
 
  <FONT Color=gray>' ''GTimer * g_timer_new (void)''

Versione delle 17:39, 8 mar 2021

Il sotto-sistema Timers della libreria GLib fornisce funzioni per tenere traccia del tempo trascorso da un momento iniziale ad uno finale stabiliti dall'utente.

Per poter fruire delle risorse del sub-sistema Timers, è necessario richiamare nell'applicazione Gambas la libreria dinamica condivisa: libglib-2.0.so


Mostriamo un semplice esempio in ambiente grafico:

Private tempus As Pointer


Library "libglib-2.0"   ' oppure: libgio-2.0

' 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"
 Button3.Text = "Arresta"
     
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

End
 

Public Sub Button3_Click()   ' Arresta il conteggio

  g_timer_destroy(tempus)

End



Riferimenti