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 31: Riga 31:
 
   Button1.Text = "Avvia"
 
   Button1.Text = "Avvia"
 
   Button2.Text = "Tempo trascorso"
 
   Button2.Text = "Tempo trascorso"
  Button3.Text = "Arresta"
+
       
     
 
 
  '''End'''
 
  '''End'''
 
   
 
   
Riga 38: Riga 37:
 
  '''Public''' Sub Button1_Click()  <FONT Color=gray>' ''Avvia il conteggio''</font>
 
  '''Public''' Sub Button1_Click()  <FONT Color=gray>' ''Avvia il conteggio''</font>
 
   
 
   
  tempus = g_timer_new()  
+
  tempus = g_timer_new()  
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 47: Riga 46:
 
   Dim ms As Long
 
   Dim ms As Long
 
    
 
    
  g_timer_stop(tempus)
+
  g_timer_stop(tempus)
 
    
 
    
  Print "Tempo trascorso: "; g_timer_elapsed(tempus, VarPtr(ms))
+
  Print "Tempo trascorso: "; g_timer_elapsed(tempus, VarPtr(ms))
 
    
 
    
  Print "Lettura dei microsecondi: "; ms
+
  Print "Lettura dei microsecondi: "; ms
 
   
 
   
'''End'''
+
   g_timer_destroy(tempus)
    
 
 
'''Public''' Sub Button3_Click()  <FONT Color=gray>' ''Arresta il conteggio''</font>
 
 
  g_timer_destroy(tempus)
 
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 18:58, 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 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"
       
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



Riferimenti