Fonction doevents trop lente

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 097 fois - Téléchargée 75 fois

Contenu du snippet

J'ai découvert que lorsqu'on utilise l'api GetInputState au lieu de la fonction vb DoEvents, l'interception des évenements est plus rapide... ainsi les répétitions s'effectuent aussi plus rapidement. Alors, dans vos structures de répétition (ex. for i=1 to 2000), remplacer
DoEvents
Par

If GetInputState then DoEvents

Source / Exemple :


Ceci est du au fait que GetInputState ne retient que les évenements qui sont destinées a l'application alors que DoEvents retient tous les évenements des applications en cours ! Testez Pour voir ! TEST 
Private Declare Function GetInputState Lib "user32" () As long 
Private Sub Form_Click() 
Dim i, a 
Dim sec1, sec2 
Sec1 = Time
For i = 1 To 2000 
      'Faites varier les fonctions pour voir la différence 
      If GetInputState then DoEvents 
      'DoEvents 
      a = a + 1 
      debug.Print a 
Next i 
Sec2 = Time 
Msgbox sec1 & " - " & sec2 
End sub

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de cs_jeremia

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.