
xProgrammer89x (Normal User)
Newbie
    
Messaggi: 14
Iscritto: 31/01/2013
|
Salve a tutti, come in titolo, vorrei sapere in che modo posso nel seguente linguaggio utilzizzare pause.
Mi spiego meglio.
Cliccando su un bottone, vengono richiamate le funzioni "uno()", "due()", "tre()", "quattro()", "cinque()", E vorrei che alla fine di ognuna, ci sia un tempo di attesa, prima di far partire la seguente, per esempio di 5 secondi.
Ho provato in questo modo, senza successo, dopo aver aggiunto un riferimento a System.Threading.Thread
Codice sorgente - presumibilmente VB.NET |
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Uno() Sleep(5000) Due() Sleep(5000) Tre() Sleep(5000) Quattro() Sleep(5000) Cinque() Sleep(5000) End Sub
|
Il problema sta, che il programma non funziona da come previsto, a quanto pare, somma tutte le pause, quindi 25.000 ms di attesa in totale, li attende, dopodichè esegue le cinque funzioni tutte in fila senza aspettare nulla.
Ne ho dedotto quindi che al posto di Sleep, debba usare qualche altra cosa del tipo Wait, che non credo esista, o Delay, che a quanto capito è la stessa cosa, si chiama in questo modo in altri linguaggi.
Qualcuno sa in che modo potrei risolvere?
Avevo pensato di usare una serie di Timer, o anche di usarne 1 solo, modificando di volta in volta l'intervallo in caso non voglia fare 5 secondi dappertutto, ma credo che sia una... "pezza"^, voi che ne dite?
Ultima modifica effettuata da xProgrammer89x il 24/02/2013 alle 15:15 |

ampeg (Normal User)
Pro
    
Messaggi: 124
Iscritto: 21/04/2011
|
l'uso del timer non è affatto una pezza, esiste apposta per fare ciò che ti serve
inoltre ti permette di avere il controllo totale sull'applicazione nel caso devi annullare l'operazione o gestire eventuali eccezioni
|

piter123 (Normal User)
Pro
    
Messaggi: 145
Iscritto: 21/05/2008
|
ciao,
call Ritardo(1000) 'crea una pusa di 1 secondo
Public Sub Ritardo(ByVal TIME_RITARDO As Integer)
'IL VALORE RITARDO E' IN MILLISECONDI 1 SECONDO=1000
Dim StartTime As Date = Now
Do
Application.DoEvents()
Loop Until (Now - StartTime).TotalMilliseconds > TIME_RITARDO
End Sub
|