PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Thread et automatisation de procédure
Thread et automatisation de procédure
Iniciado por Didier CHAFFAT, 22,jun. 2019 09:23 - 2 respuestas
Miembro registrado
5 mensajes
Publicado el 22,junio 2019 - 09:23
Bonjour à toutes et à tous,

J'ai une fenêtre dans laquelle je dois exécuter une procédure à chaque seconde.

Cette procédure appelée mprcRun() contient 2 procédures internes : une procédure interne pour lire les données dans une base HFSQL et une procédure interne pour mettre à jour l'interface utilisateur :

-----------------------

Procedure mprcRun()

SI ifonctionLectureBaseDeDonnées() ALORS
iprcAffichage()
FIN


-----------------------

J'ai essayé plusieurs solutions pour exécuter cette procédure mprcRun() chaque seconde. Elles fonctionnent toutes mais j'aimerais connaître vos avis afin d'utiliser celle qui est le plus optimisée :

-----------------------

Solution 1 : à la fin d'initialisation de ma fenêtre, je mets :
TimerSys("mprcRun",1000)


-----------------------

Solution 2 : dans la fênetre "Automatisme de la procédure", je déclare la procédure mprcRun comme "Timer / procédure différée" en cochant "infini" et en mettant l'espace entre chaque appel à 1 seconde.

-----------------------

Solution 3 : dans la fênetre "Automatisme de la procédure", je déclare la procédure mprcRun comme "Thread" en cochant "infini" et en mettant l'espace entre chaque appel à 1 seconde. Je coche également "Avec utilisation de HFSQL : copie de contexte complète.

Le code la procédure mprcRun devient alors :

Procedure mprcRun()

SI ifonctionLectureBaseDeDonnées() ALORS
ExécuteThreadPrincipal(iprcAffichage)
FIN

-----------------------

Quelle est la meilleure solution selon vous ou une autre solution est-elle possible ?

Merci de votre aide.
Publicado el 24,junio 2019 - 11:52
Bonjour Didier,

Vérifier toutes les secondes si un fichier de base HFSQL est modifié
n'est pas la façon la plus performante.
Il vaut mieux s'abonner au serveur HFSQL qui fera lui même le travail.

Regarde du côté de la fonction HSurveille()
Avec cette fonction tu peux lancer automatiquement une procédure selon
la ou les action(s) surveillée(s)


C'est comme cela que je fonctionne depuis la version 22 et c'est
beaucoup mieux que d'utiliser HVersion().

Eric
Publicado el 24,junio 2019 - 16:51
Bonjour Éric,

Merci beaucoup !

Je vais tester.