SLEEP
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 = "Free"
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 = "Free"
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.