SLEEP: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
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