La función toma el valor "0.00:00:" de tiempo y procesa como string (& reemplaza) los segundos recibidos para iniciar la transformación;
Public Sub EsperaSec(ByVal SegundosW As Double)
Dim Ts As TimeSpan
Dim TrSt As String
Dim tR1 As DateTime
Dim tR2 As DateTime
TrSt = "0.00:00:" & SegundosW.ToString.Replace(",", ".")
Ts = TimeSpan.Parse(TrSt) 'String transformado
tR1 = DateTime.Now.Add(Ts) 'Añadimos, es el tiempo donde finalizará el conteo por ej. 10 segundos despues del tiempo actual
tR2 = DateTime.Now 'Tiempo actual para comparar
Do While tR2 < tR1 'mientras el tiempo actual sea menor o bien mientras no se hayan cumplido los segundos establecidos
Application.DoEvents() 'igual que el DoEvents de VB 6
tR2 = DateTime.Now 'asignar nuevos datos al segundo tiempo
Loop
End Sub
Se le "llama" de esta forma
EsperaSec(2)
Donde Segundos puede ser un valor en concreto o una variable de tipo numérica.
Es posible establecer la función en un módulo o bien en cualquier formulario si se quiere puede variar el acceso por ejemplo colocandola como Privada.
NOTA: si se quiere utilizar la función en un Timer, hay que ser cuidadoso ya que mientras se esperan los segundos el timer puede entrar en acción y haría un alboroto en nuestra aplicación, si la función se realiza en un evento común y corriente NO tendrán ningún problema.
Saludos.
No hay comentarios:
Publicar un comentario