Sleep qui merde

Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009 - 22 oct. 2005 à 14:03
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 22 oct. 2005 à 14:24
Salut,



Ya un truc qui me fait craquer que j'arrive pas à comprendre, c'est ce morceau de code ci-dessous:



Sleep_tps = 50



For i = 1 To 5

Winsock1.SendData Drive1.List(i)

Sleep Sleep_tps

Next i

Winsock1.SendData "finished"



Je sais pas pourquoi, au lieu de me faire un sleep de 50ms entre chaque
requête, il attend 5x50ms (=250ms) et m'envoie tout d'un coup en un
seul paquet tout collé grrrrr..



nota: le code est légèrement simplifié



Quelqu'un a-t-il une explication??...

Merci

1 réponse

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 oct. 2005 à 14:24
salut,
l'explication est très simple, le sleep prend effet bien avant que ton socket puisse recevoir ses instructions.
si ton but est juste de ne pas envoyer tes 5 messages d'un bloc, alors le Sleep n'est pas approprié.
si tu veux non-seulement qu'il soient séparés, mais en plus faire une pause (ce qui me parraît bizarre pour si peu de temps), alors il faut juste redonner la main au système.


' [VB6] envoyer en 5 lignes :
For i = 1 To 5
Winsock1.SendData Drive1.List(i)
DoEvents
Next i
Winsock1.SendData "finished"
DoEvents

'tu peux ajouter ton "Call Sleep(50)" sous tes "DoEvents"
'mais c'est totalement inutile...



<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


++
PCPT [AFCK]
0
Rejoignez-nous