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.