Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Quale pausa utilizzo? Sleep non la ritengo adatta!
Forum - C# / VB.NET - [VB.NET] Quale pausa utilizzo? Sleep non la ritengo adatta!

Avatar
xProgrammer89x (Normal User)
Newbie


Messaggi: 14
Iscritto: 31/01/2013

Segnala al moderatore
Postato alle 15:07
Domenica, 24/02/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

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
  2.         Uno()
  3.         Sleep(5000)
  4.         Due()
  5.         Sleep(5000)
  6.         Tre()
  7.         Sleep(5000)
  8.         Quattro()
  9.         Sleep(5000)
  10.         Cinque()
  11.         Sleep(5000)
  12.     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
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 931
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 16:44
Domenica, 24/02/2013

Prima di ogni sleep prova a mettere Application.Doevent , ciauz


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 13:37
Lunedì, 25/02/2013
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

PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 9:11
Venerdì, 01/03/2013
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

PM Quote