Sleep - Doevents

Le
TouTi
Bonjour

Pourriez-vous me donner la différence entre ces deux méthodes afin créer une
pause dans une fonction ou sub

1) Utilisation de l'API Sleep
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep 500

2) Utilisation d'une boucle avec Doevents
Sub Delay(vdp As Single)
tdps = Timer
While (tdps + vdp) > Timer
DoEvents
Wend
End Sub

Y en a t-il une qui laisse le champ libre à l'éxécution d'autres procédures
simultanément ???

Merci

GuY
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François Picalausa
Le #15398221
On Jul 3, 10:23 am, "TouTi"
Bonjour

Pourriez-vous me donner la différence entre ces deux méthodes afin cr éer une
pause dans une fonction ou sub

1) Utilisation de l'API Sleep
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep 500

2) Utilisation d'une boucle avec Doevents
Sub Delay(vdp As Single)
tdps = Timer
While (tdps + vdp) > Timer
DoEvents
Wend
End Sub

Y en a t-il une qui laisse le champ libre à l'éxécution d'autres pr océdures
simultanément ???



Hello,

La seconde permet que d'autres procédures événementielles soient
appelés en même temps, alors que la première bloque simplement le
thread appelant (ce qui signifie, sous VB6, que litéralement aucun
code ne sera exécuté).

Cependant, il existe assez peu de cas où réaliser un tel blockage
synchrone d'une procédure sur un temps donné est réellement utile.
Souvent un contrôle timer (ou une méthode similaire basée sur des
timers gérés par windows) est tout aussi, si ce n'est plus, efficace.
Peux-tu décrire plus en détail ce que tu cherches à faire pour
qu'éventuellement nous puissions te guider vers une méthodes plus
appropriée?

François
touti
Le #15398211
Bonjour François

2) Utilisation d'une boucle avec Doevents
Sub Delay(vdp As Single)
tdps = Timer
While (tdps + vdp) > Timer
DoEvents
Wend
End Sub



La seconde permet que d'autres procédures événementielles soient
appelés en même temps, alors que la première bloque simplement le
thread appelant (ce qui signifie, sous VB6, que litéralement aucun
code ne sera exécuté).



La présentation de mon projet serait trop loin a expliquer mais tu me
confortes sur l'utilisation de la deuxième méthode et je t'en remercie


GuY
Publicité
Poster une réponse
Anonyme