Differenze tra le versioni di "SLEEP"

Da Gambas-it.org - Wikipedia.
Riga 8: Riga 8:
 
Il ritardo è un numero di secondi e può essere un numero in virgola mobile.
 
Il ritardo è un numero di secondi e può essere un numero in virgola mobile.
  
Il ciclo di eventi non viene chiamato durante '''Sleep''' e quindi gli eventi non vengono elaborati.
+
Il ciclo di eventi non viene chiamato durante '''SLEEP''' e quindi gli eventi non vengono elaborati.
  
Per vederne il funzionamento rispetto a '''Wait''', creiamo un nuovo progetto grafico riportando questo codice:
+
Per vederne il funzionamento rispetto a '''WAIT''', creiamo un nuovo progetto grafico riportando questo codice:
  
  
 
   Public Timer1 As Timer
 
   Public Timer1 As Timer
   Private $sMode As String = "Free"
+
   Private $sMode As String = "LIBERO"
 
    
 
    
 
   Public Sub Form_Open()
 
   Public Sub Form_Open()
Riga 40: Riga 40:
 
       Sleep 10
 
       Sleep 10
 
     Endif
 
     Endif
     $sMode = "Free"
+
     $sMode = "LIBERO"
 
    
 
    
 
   End
 
   End
Riga 47: Riga 47:
 
    
 
    
 
     If Mouse.Left Then
 
     If Mouse.Left Then
       Print "---Partenza per 10 secondi di Wait---"
+
       Print "---Partenza per 10 secondi di WAIT---"
 
     Else
 
     Else
       Print "---Partenza per 10 secondi di Sleep---"
+
       Print "---Partenza per 10 secondi di SLEEP---"
 
     Endif
 
     Endif
 
    
 
    
Riga 60: Riga 60:
 
   End
 
   End
  
In vero, sia '''Sleep''' che '''Wait''' interrompono l'esecuzione corretta e completa di un Evento, qualora posti all'interno della routine di tale Evento.
+
In vero, sia '''SLEEP''' che '''WAIT''' interrompono l'esecuzione corretta e completa di un Evento, qualora posti all'interno della routine di tale Evento.
  
'''Sleep''' però, in più rispetto a '''Wait''', non si limita a bloccare, per il tempo stabilito, il sollevarsi dell'Evento e la procedura ove tale istruzione di attesa è posta, ma blocca ogni altro Evento che possa essere sollevato dal progetto.
+
'''SLEEP''' però, in più rispetto a '''WAIT''', non si limita a bloccare, per il tempo stabilito, il sollevarsi dell'Evento e la procedura ove tale istruzione di attesa è posta, ma blocca ogni altro Evento che possa essere sollevato dal progetto.
  
 
=Vedi anche=
 
=Vedi anche=
 
[https://www.gambas-it.org/wiki/index.php?title=WAIT WAIT]
 
[https://www.gambas-it.org/wiki/index.php?title=WAIT WAIT]

Versione delle 10:18, 4 set 2020

La sintassi di SLEEP è:

<<codice 1>>
Sleep n
<<codice 2>>

Arresta il programma durante un ritardo specificato con n facendolo dormire, ovvero restituendo il suo tempo di CPU al sistema operativo.

Il ritardo è un numero di secondi e può essere un numero in virgola mobile.

Il ciclo di eventi non viene chiamato durante SLEEP e quindi gli eventi non vengono elaborati.

Per vederne il funzionamento rispetto a WAIT, creiamo un nuovo progetto grafico riportando questo codice:


 Public Timer1 As Timer
 Private $sMode As String = "LIBERO"
 
 Public Sub Form_Open()
 
   Timer1 = New Timer As "Timer1"
   Timer1.Delay = 1000
   Timer1.Enabled = True
 
 End
 
 Public Sub Form_Close()
 
   Timer1.Enabled = False
 
 End
 
 Public Sub Form_MouseUp()
 
   If Mouse.Left Then
     $sMode = "WAIT"
     Wait 10
   Endif
   If Mouse.Right Then
     $sMode = "SLEEP"
     Sleep 10
   Endif
   $sMode = "LIBERO"
 
 End
 
 Public Sub Form_MouseDown()
 
   If Mouse.Left Then
     Print "---Partenza per 10 secondi di WAIT---"
   Else
     Print "---Partenza per 10 secondi di SLEEP---"
   Endif
 
 End
 
 Public Sub Timer1_Timer()
 
   Print CInt(Timer);; $sMode
 
 End

In vero, sia SLEEP che WAIT interrompono l'esecuzione corretta e completa di un Evento, qualora posti all'interno della routine di tale Evento.

SLEEP però, in più rispetto a WAIT, non si limita a bloccare, per il tempo stabilito, il sollevarsi dell'Evento e la procedura ove tale istruzione di attesa è posta, ma blocca ogni altro Evento che possa essere sollevato dal progetto.

Vedi anche

WAIT