Oggi vediamo una semplice procedura che aggiunga al nostro classic ASP la funzione Sleep(non prevista da VBScript). La funzione Sleep (presente in quasi tutti i moderni linguaggi di programmazione) non fa altro che sospendere fino allo scadere di un determinato intervallo di tempo l’esecuzione del nostro programma.
Innanzitutto quella che andremo a scrivere non sarà una funzione ma una subrutine in quanto non abbiamo bisogno che ci venga restituito nessun dato. Alla Sub passeremo un unico attributo che è il numero di secondi per il quale vogliamo che il processo si interrompa.
Ho preparato due esempi uno con il Do...Loop
ed uno While...Wend
, il principio di funzionamento è pressoché identico.
Con Do…Loop
Sub Sleep(intSecondi) If Not IsNumeric(intSecondi) Then Exit Sub Dim dataFine dataFine = DateAdd("S", intSecondi, Now()) Do While True If Now() >= dataFine Then Exit Do End If Loop End Sub
Con While…Wend
Sub Sleep(intSecondi) If Not IsNumeric(intSecondi) Then Exit Sub Dim dataFine dataFine = DateAdd("S", intSecondi, Now()) While dataFine > Now 'non faccio niente Wend End Sub
Conclusioni
Come detto in precedenza la funzione Sleep sospende l’esecuzione del programma per un determinato periodo di tempo; con i nostri esempi invece il processo continua la sua esecuzione entrando anzi in un loop che andrà a far salire verso l’alto l’utilizzo della CPU del server su cui gira l’applicazione per la durata del ciclo. Provate!
Onestamente come soluzione non è che mi faccia impazzire, usatela quindi solo se strettamente necessario e fatene un uso parsimonioso.