«

»

dic 27

Print this Articolo

LUA – Funzione SLEEP

 

Una delle funzioni fondamentali nella programmazione, è la funzione SLEEP.

Essa permette di far attendere la normale esecuzione del programma per un determinato lasso di tempo tra una operazione e l’altra, in modo tale da poter dare, appunto il tempo, ad un utilizzatore del programma di leggere le informazioni stampate a schermo o di capire cosa sia stato eseguito senza che ciò avvenga in un millisecondo.

In LUA non esiste una vera e propria funzione di “SLEEP”, ma è possibile implementarla molto facilmente utilizzando il comando getTime già incontrato nel post LUA – Ora e Data.

Il codice della funzione è molto semplice:

function clock()
   return System.getTime(3)
end

function sleep(sec)  -- sec=secondi di attesa
  t0=clock()
  while clock()-t0 <= sec do end
end

Come potete vedere vi sono due funzioni distinte, una la funzione clock() che ritorna i secondi attuali (0/60) mediante l’uso del comando System.getTime(3) e la seconda funzione la cui intestazione è sleep(sec) che è la funzione SLEEP vera e propria.

Il funzionamento è basilare:

  • richiamiamo la funzione sleep passandogli un valore numerico che rappresenta i secondi di attesa,               ES: sleep(5);
  • dentro alla funzione sleep viene inizializzata una variabile che memorizza il secondo esatto in cui abbiamo richiamato la funzione sleep, nel nostro caso ho chiamato questa variabile “t0″
  • successivamente si entra in un ciclo while che non esegue nulla e che termina solo quando i secondi attuali meno il tempo zero (o t0) sono maggiori dei secondi di attesa.                                                                                     Per far comprendere meglio il funzionamento del ciclo while bisogna notare che i secondi attuali vengono aumentati ad ogni secondo, mentre il tempo zero (o t0) non cambia mai durante l’esecuzione del ciclo while.

In questo modo il ciclo while all’interno della funzione sleep rimane attivo per un tempo determinato in base ai secondi che gli vengono comunicati tramite il passaggio di variabile.

_____________________________________________________________________________________________ Ti è piaciuto questo articolo ? Condividilo !

Permanent link to this article: http://taketheball.altervista.org/?p=575

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>