Multi Thread? ou autres...

jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - Modifié par jimy neutron le 23/01/2015 à 12:08
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 26 janv. 2015 à 09:13
Bonjour à tous,

Je dévellope une application en VB 2010 qui monitore la communication entre des automates, PC et serveurs sur un même réseau industriel (IPs Fixes).

Ce monitoring est basé sur des pings en boucle et affichage du résultat et du DNS lu, à partir d'une liste d'adresse IP.

Celle ci fonctionne bien, cependant, si ma liste comporte, par exemple, 255 adresses IP, sachant qu'il faut environ 1s pour une ping qui répond et 3s pour un ping qui ne répond pas, le test des 255 adresses prend au bas mot 255s soit 4.25mn.

Donc chaque adresse IP n'est testée que toutes les 4.25mn, ce qui limite l'efficacité de l'application, car on peut très bien perdre, puis retrouver la communication d'une adresse sans que l'application de s'en rende compte.

Auriez-vous une idée pour que toutes les adresses soient testées simultanément sur un cycle de quelques secondes?

L'utilisation de multi-Thread est elle envisageable? Nb d'IP = Nb Thread?

Merci de votre attention.

Marc

3 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
23 janv. 2015 à 14:08
Bonjour, je pense que c'est une piste à essayer au moins.
Alors peut-être pas un thread par ip, mais tu pourrais essayer d'en créer 2, 5, 10, pour voir ce que ça donne (temps d'éxécution, ressources système, etc..)

Je mettrais la liste des IP dans une list(of(T)) globale.
Le premier thread prend la première IP et la supprime de la liste et la teste.
Le second thread prend la nouvelle première IP et la supprime et la teste.
Etc....
Quand un thread a fini de pinger, il prend la première IP etc...
Quand il n'y a plus ip dans la liste on la recharge et on recommence.

0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
26 janv. 2015 à 07:57
Merci Whismeril,

Je peux essayer ça.
As-tu déjà utilisé les 'Background Worker':
https://msdn.microsoft.com/fr-fr/library/cc221403(v=vs.95).aspx?cs-save-lang=1&cs-lang=vb

Je n'est jamais utilisé cette méthode, je vais essayer, mais penses-tu qu'elle pourrait-elle correspondre à mon besoin?
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
26 janv. 2015 à 09:13
Bonjour, oui un backgroundworker peut correspondre à ton besoin.
0
Rejoignez-nous