Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/10/2004, 12:54
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
VB6 no tiene el método Sleep por una simple y sencilla razón: Se da por sentado que ninguno que programe en VB6 utilizara varios threads. Pero si quieres tener tiempos muertos, la opción del control timer que te presentan RadicalEd y Racoton es muy adecuada.
Otro modo sería un loop que compare el tiempo transcurrido de la función timer de VB6:
Código:
'Modo de uso:
'Esperar 1000
Sub Esperar(ByVal msEspera As Long)
Dim msFin As Long
	msFin = (Timer * 1000) + msEspera
	Do
	Loop While (Timer * 1000) < msFin
End Sub
Aún cuando la función espera como parámetro milisegundos, la función no es muy exacta, ya que la función timer tiene una precisión de centésimas de segundo. Además, un bucle así de inútil, desperdicia los valiosos time slots de tu procesador. Pero basta para muchos casos.

Por último, puedes usar de la API de windows, el método Sleep:
Código:
'VOID Sleep(
' DWORD dwMilliseconds // sleep time in milliseconds
');
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Ventaja: el tiempo de espera es más preciso (rango de milisegundos en verdad). Además, lo que hace el método, es suspender la ejecución, por lo que no carga al procesador (al contrario del método del bucle).

Saludos.

Última edición por Beakdan; 28/10/2004 a las 12:56