Passer des arguments à un thread

cs_aragornis Messages postés 1 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 18 juin 2004 - 18 juin 2004 à 20:56
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 19 juin 2004 à 16:47
Je souhaite pinger de nombreuses ip à la suite. Pour cela je compte utiliser un thread qui lancerait pour chaque ip la fonction qui ping mais encore faut-il passer l'adresse à la fonction qui ping.

Mais quand je fais :

mHandle = CreateThread(ByVal 0&, ByVal 0&, ping, ByVal 0&, CreationFlags, lpThreadID)

je ne peux pas dire à la fonction quoi pinger. Pourriez vous m'aider svp ? Mci D'avance

@+

1 réponse

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
19 juin 2004 à 16:47
salut

ta fonction de rappel ping possède un paramètre lpParameter. Si tu passes par exemple dans le paramètre suivant ping, strptr(global_ip(0)), lpParameter de ping recevra l'adresse de la chaine global_ip(0) que tu pourras utiliser pour le thread. il faut alors que tu déclares global_ip comme un tableau de chaines contenant les IPs dans un module.
puis dans ping tu mets :
dim tmp as string,oldtmp as long
CopyMemory byval varptr(oldtemp),byval varptr(tmp),4&
CopyMemory byval varptr(tmp),byval varptr(lpParameter),4&

puis à la fin :
CopyMemory byval varptr(tmp),byval varptr(oldtmp),4&

normallement tmp contiendra le contenu de global_ip(0)

par contre je ne suis pas sur que createthread ne fasse pas planter vb car VB n'accepte pas bien la création de thread ailleurs que dans les dlls activex...

voilà

ShareVB
0