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.
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
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.
 
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.
 +
<BR>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'' "
+
Per poter fruire delle risorse del sub-sistema ''Timers'', è necessario richiamare nell'applicazione Gambas la libreria condivisa: "''libglib-2.0.so.0.7200.4'' "
 
 
  
 
Mostriamo un semplice esempio in ambiente grafico:
 
Mostriamo un semplice esempio in ambiente grafico:
Riga 8: Riga 8:
 
   
 
   
 
   
 
   
  Library "libglib-2.0"  <FONT Color=gray>' oppure: libgio-2.0</font>
+
  Library "libglib-2.0:0.7200.4"  <FONT Color=gray>' oppure: libgio-2.0:0.6400.6</font>
 
   
 
   
 
  <FONT Color=gray>' ''GTimer * g_timer_new (void)''
 
  <FONT Color=gray>' ''GTimer * g_timer_new (void)''
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'''
 
 
 
 
   
 
   
'''Public''' Sub Button3_Click()   <FONT Color=gray>' ''Arresta il conteggio''</font>
+
   g_timer_destroy(tempus)
 
  g_timer_destroy(tempus)
 
 
   
 
   
 
  '''End'''
 
  '''End'''
 
  
  
  
 
=Riferimenti=
 
=Riferimenti=
* https://developer.gnome.org/glib/stable/glib-Timers.html
+
* https://docs.gtk.org/glib/func.str_has_suffix.html?q=g_timer

Versione attuale delle 08:26, 30 apr 2023

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.
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.7200.4 "

Mostriamo un semplice esempio in ambiente grafico:

Private tempus As Pointer


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

' 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