Differenze tra le versioni di "SLEEP"
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 ''' | + | Il ciclo di eventi non viene chiamato durante '''SLEEP''' e quindi gli eventi non vengono elaborati. |
− | Per vederne il funzionamento rispetto a ''' | + | 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 = " | + | Private $sMode As String = "LIBERO" |
Public Sub Form_Open() | Public Sub Form_Open() | ||
Riga 40: | Riga 40: | ||
Sleep 10 | Sleep 10 | ||
Endif | Endif | ||
− | $sMode = " | + | $sMode = "LIBERO" |
End | End | ||
Riga 47: | Riga 47: | ||
If Mouse.Left Then | If Mouse.Left Then | ||
− | Print "---Partenza per 10 secondi di | + | Print "---Partenza per 10 secondi di WAIT---" |
Else | Else | ||
− | Print "---Partenza per 10 secondi di | + | Print "---Partenza per 10 secondi di SLEEP---" |
Endif | Endif | ||
Riga 60: | Riga 60: | ||
End | End | ||
− | In vero, sia ''' | + | 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= | =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 09: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.