SLEEP: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
(4 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
=SLEEP=
La sintassi di SLEEP è:
La sintassi di SLEEP è:
  <<codice 1>>
  <<codice 1>>
Riga 4: Riga 5:
  <<codice 2>>
  <<codice 2>>


Arresta il programma durante un ritardo specificato con '''n''' facendolo dormire, ovvero restituendo il suo tempo di CPU al sistema operativo.
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 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 due nuovi progetti grafici riportando questi codici:


 
Il nome '''''"Sleep"''''', attribuito a questa istruzione, sembra chiarificatore della sua funzione: mette a ''dormire'' l'intero processo.
  Public Timer1 As Timer
  Private $sMode As String = "Free"
 
   Public Sub Form_Open()
   Public Sub Form_Open()
    
    
     Timer1 = New Timer As "Timer1"
     Me.Show
     Timer1.Delay = 1000
     Wait 0.5  <FONT Color=gray>' ''Il '''Wait''', non bloccando l'intero processo, consente che il Form si apra completamente''</font>
     Timer1.Enabled = True
      
    <FONT Color=red>'''Sleep'''</font> 5
   
    Print "Fine azione dello 'Sleep' "
    
    
   End
   End
    
    
  Public Sub Form_Close()
    
    
     Timer1.Enabled = False
  Public Sub Button1_Click()  <FONT Color=gray>' ''Si noterà che lo '''Sleep''' impedisce lo scatenarsi dell'Evento '''_Clic()''' del Button ! ''</font>
 
     Print "Clic"
    
    
   End
   End
=WAIT=
'''''"Wait"''''', invece, arresta la sola particolare procedura del codice giunta alla riga di quell'istruzione di attesa, non interferendo però con altre eventuali parti in corso del processo.
  Public Sub Form_Open()
    
    
  Public Sub Form_MouseUp()
    Me.Show
    
    
     If Mouse.Left Then
     <FONT Color=red>'''Wait'''</font> 5
      $sMode = "WAIT"
 
      Wait 10
     Print "Fine azione del 'Wait'"
    Endif
     If Mouse.Right Then
      $sMode = "SLEEP"
      Sleep 10
    Endif
    $sMode = "Free"
    
    
   End
   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()
   Public Sub Button1_Click()
    
    
     Print CInt(Timer);; $sMode
     Print "Clic"
    
    
   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 della procedura ove tale istruzione di attesa è posta, ma <U>blocca ogni altro Evento</u> 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]
[[WAIT]]

Versione attuale delle 17:19, 6 lug 2024

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 due nuovi progetti grafici riportando questi codici:

Il nome "Sleep", attribuito a questa istruzione, sembra chiarificatore della sua funzione: mette a dormire l'intero processo.

 Public Sub Form_Open()
 
   Me.Show
   Wait 0.5   ' Il Wait, non bloccando l'intero processo, consente che il Form si apra completamente
   
   Sleep 5
   
   Print "Fine azione dello 'Sleep' "
 
 End
 
 
 Public Sub Button1_Click()  ' Si noterà che lo Sleep impedisce lo scatenarsi dell'Evento _Clic() del Button ! 
 
   Print "Clic"
 
 End


WAIT

"Wait", invece, arresta la sola particolare procedura del codice giunta alla riga di quell'istruzione di attesa, non interferendo però con altre eventuali parti in corso del processo.

 Public Sub Form_Open()
 
   Me.Show
 
   Wait 5
 
   Print "Fine azione del 'Wait'"
 
 End
 
 
 Public Sub Button1_Click()
 
   Print "Clic"
 
 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 della procedura ove tale istruzione di attesa è posta, ma blocca ogni altro Evento che possa essere sollevato dal progetto.


Vedi anche

WAIT