Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sleep - Doevents

2 réponses
Avatar
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

2 réponses

Avatar
François Picalausa
On Jul 3, 10:23 am, "TouTi" wrote:
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
Avatar
touti
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