PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Thread qui bloque le code.
Thread qui bloque le code.
Débuté par leinski, 21 avr. 2022 17:55 - 3 réponses
Posté le 21 avril 2022 - 17:55
Bonjour tout le monde.
On m'a proposé d'utiliser la fonction hsurveille. Cela fonctionne très bien mais j'ai un incident.
Ayant 1280 postes je ne voulais pas, par peur de saturer le serveur, que tous les postes écrivent "1" en même temps dans la BDD.
J'ai donc eu l'idée, bonne ou pas, de créer une temporisation avec threadPause avec un temps aléatoire entre 1 et 120s.
Cette pause est dans la procédure appelée par hsurveille et lancée en thread sécurisé secondaire.
Tout fonctionne très bien. Mais je ne comprends pas pourquoi le reste du code est bloqué quand ce thread est temporisé.
une idée ?
Membre enregistré
220 messages
Posté le 22 avril 2022 - 16:46
Bonjour,

La solution à votre problème est de retirer ce threadPause et de laisser le serveur faire son travail.
Membre enregistré
287 messages
Posté le 22 avril 2022 - 17:42
La procédure de CallBack appelée par HSurveille est exécutée dans le thread principal. Donc bloquante.

--
667, EKIP EKIP
#PourUnMondeMeilleur #92.i
Posté le 05 mai 2022 - 08:58
Merci à vous tous.
C'est ce que je fais donc maintenant mais les machines dialoguent toutes en même temps.
Le serveur modifie une zone de la BDD, Hsurveille des postes détectent la modification et ces même postes lancent leur procédure. J'ai 1286 postes à ce jour dont environ 500 connectés simultanément tous les jours.
Lorsque les machines réalisent leur procédure, qui consiste à faire un copier/coller d'une information d'une zone dans la BDD dans une autre zone de cette même BDD, le trafic réseau monte à 15% pendant 3s.

C'est pour cette raison que je voulais temporiser les postes afin qu'ils ne dialoguent pas tous en même temps.
Mais si cela, d'après vous, n'est pas dérangeant ....
Juste avoir votre avis.
Merci