Bonjour à toutes et tous,
dans mon appli de monitoring de bains de galvano, je dois recueillir des infos en provenance d'une quinzaine d'automates.
Donc dans ma fenêtre de monitoring je lance autant de thread que j'ai d'automates à surveiller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 PROCEDURE chargerModules() nomThread est une chaîne id est un entier ThreadMode(threadSectionCritique) POUR TOUT atm id = Val(Droite(atm.atm_ip,3)) ZoneRépétéeAjouteLigne(ZR_BOITES,id,"voyant_rouge.png") // lance un thread de monitoring par module nomThread="thread_monitoring"+id SI ThreadEtat(nomThread) = threadEnCours ALORS ThreadArrête(nomThread) FIN ThreadExécute(nomThread,threadNormal,"threadMonitoring", id) FIN
La procédure de monitoring se présente comme suit :
La procédure threadMonitoring exécute la procédure MONITORER (qui va établir la connexion à l'automate, lire les variables et refermer la socket).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 PROCEDURE threadMonitoring(id est un entier) HFiltre(atm,atm_id,hValMin,hValMax,"atm_ip='192.168.0."+id+"'") HLitPremier(atm) full_ip est une chaîne = atm.atm_ip port est un entier = atm.atm_port_tcp HDésactiveFiltre(atm) TANTQUE Vrai // MONITORER(id, full_ip, port) Multitâche(-100) FIN
Pour l'instant j'ai commenté la ligne qui lance MONITORER car j'ai déjà un problème de stabilité, on peut même parler de plantage, rien qu'au niveau des threads.
Je m'explique : il suffit que j'ouvre la fenêtre de monitoring, je la ferme puis je la ré-ouvre et l'appli se fige, "ne répond pas", sablier, "WDTst.exe ne répond pas", et je dois forcer la fermeture.
Ca plante pareil avec l'exécutable généré.
Je fais pourtant des threadArrete si threadEnCours à chaque chargement, je ne comprends pas. Et il se passe un temps certain quand je ferme la fenêtre de monitoring pour ouvrir une autre fenêtre qui n'a rien à voir... j'attends 5-10 secondes parfois plus, alors que ça devrait être quasi instantané....
Quelqu'un peut-il me dire si je m'y prends mal ?
Merci à vous
EDIT : je viens de lire ce sujet => http://www.developpez.net/forums/d10...ajoutefichier/ je me demande si je ne suis pas dans une situation semblable
Partager