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.