SLEEP

Da Gambas-it.org - Wikipedia.
Versione del 4 set 2020 alle 09:01 di Gianluigi (Discussione | contributi) (Creata pagina con "La sintassi di SLEEP è: <<codice 1>> '''Sleep n''' <<codice 2>> Arresta il programma durante un ritardo specificato con '''n''' facendolo dormire, ovvero restituendo il s...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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.